16.04.2013 Views

Community Edition 76 - Linux New Media

Community Edition 76 - Linux New Media

Community Edition 76 - Linux New Media

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Expediente editorial<br />

Diretor Geral<br />

Rafael Peregrino da Silva<br />

rperegrino@linuxmagazine.com.br<br />

Editores<br />

Flávia Jobstraibizer<br />

fjobs@linuxmagazine.com.br<br />

Kemel Zaidan<br />

kzaidan@linuxmagazine.com.br<br />

Editora de Arte<br />

Larissa Lima Zanini<br />

llima@linuxmagazine.com.br<br />

Colaboradores<br />

Alexandre Borges, Alexandre Santos, Augusto<br />

Campos, Hans-Peter Merkel Kay-Uwe Königsman,<br />

James Mohr, Kurt Seifried, Marcel Gagné,<br />

Markus Feilner, Michael Gotwald, Oliver Kluge,<br />

Stefan Wintermeyer, Thomas Bader.<br />

Tradução<br />

Pablo Hess, Emersom Satomi, Michelle Ribeiro<br />

Editores internacionais<br />

Uli Bantle, Andreas Bohle, Jens-Christoph Brendel,<br />

Hans-Georg Eßer, Markus Feilner, Oliver Frommel,<br />

Marcel Hilzinger, Mathias Huber, Anika Kehrer,<br />

Kristian Kißling, Jan Kleinert, Daniel Kottmair,<br />

Thomas Leichtenstern, Jörg Luther, Nils Magnus.<br />

Anúncios:<br />

Rafael Peregrino da Silva (Brasil)<br />

anuncios@linuxmagazine.com.br<br />

Tel.: +55 (0)11 3675-2600<br />

Penny Wilby (Reino Unido e Irlanda)<br />

pwilby@linux-magazine.com<br />

Amy Phalen (América do Norte)<br />

aphalen@linuxpromagazine.com<br />

Hubert Wiest (Outros países)<br />

hwiest@linuxnewmedia.de<br />

Diretor de operações<br />

Claudio Bazzoli<br />

cbazzoli@linuxmagazine.com.br<br />

Na Internet:<br />

www.linuxmagazine.com.br – Brasil<br />

www.linux-magazin.de – Alemanha<br />

www.linux-magazine.com – Portal Mundial<br />

www.linuxmagazine.com.au – Austrália<br />

www.linux-magazine.es – Espanha<br />

www.linux-magazine.pl – Polônia<br />

www.linux-magazine.co.uk – Reino Unido<br />

www.linuxpromagazine.com – América do Norte<br />

Apesar de todos os cuidados possíveis terem sido tomados<br />

durante a produção desta revista, a editora não é responsável<br />

por eventuais imprecisões nela contidas ou por consequências<br />

que advenham de seu uso. A utilização de qualquer material<br />

da revista ocorre por conta e risco do leitor.<br />

Nenhum material pode ser reproduzido em qualquer meio, em<br />

parte ou no todo, sem permissão expressa da editora. Assume-se<br />

que qualquer correspondência recebida, tal como cartas, emails,<br />

faxes, fotografi as, artigos e desenhos, sejam fornecidos para publicação<br />

ou licenciamento a terceiros de forma mundial não-exclusiva<br />

pela <strong>Linux</strong> <strong>New</strong> <strong>Media</strong> do Brasil, a menos que explicitamente<br />

indicado.<br />

<strong>Linux</strong> é uma marca registrada de Linus Torvalds.<br />

<strong>Linux</strong> Magazine é publicada mensalmente por:<br />

<strong>Linux</strong> <strong>New</strong> <strong>Media</strong> do Brasil Editora Ltda.<br />

Rua São Bento, 500<br />

Conj. 802 – Sé<br />

01010-001 – São Paulo – SP – Brasil<br />

Tel.: +55 (0)11 3675-2600<br />

Direitos Autorais e Marcas Registradas © 2004 - 2011–:<br />

<strong>Linux</strong> <strong>New</strong> <strong>Media</strong> do Brasil Editora Ltda.<br />

Impressão e Acabamento: RR Donnelley<br />

Distribuída em todo o país pela Dinap S.A.,<br />

Distribuidora Nacional de Publicações, São Paulo.<br />

Atendimento Assinante<br />

www.linuxnewmedia.com.br/atendimento<br />

São Paulo: +55 (0)11 3512 9460<br />

Rio de Janeiro: +55 (0)21 3512 0888<br />

Belo Horizonte: +55 (0)31 3516 1280<br />

ISSN 1806-9428 Impresso no Brasil<br />

<strong>Linux</strong> Magazine #<strong>76</strong> | Março de 2011<br />

Artífi ces da história<br />

Em uma madrugada (insone) dessas, estava assistindo novamente ao<br />

fi lme Forrest Gump: O Contador de Histórias (título nacional do fi lme de<br />

Robert Zemeckis, com Tom Hanks no papel-título). Por obra e graça de<br />

alguma conjunção universal, também estava lendo no livro A Cabeça de<br />

Steve Jobs um trecho no qual o fundador da Apple comenta que, mais do<br />

que ser bem-sucedido em suas empreitadas comerciais, ele está preocupado<br />

em deixar uma marca no universo. Forrest Gump acabou por deixar uma<br />

marca no universo, pois, mais do que contar suas histórias, ele as viveu. Isso<br />

requer obstinação, algo que também não falta a Steve Jobs, além de uma<br />

visão que beira a profecia e que leva o visionário a uma quase certeza de suas<br />

aspirações e de seus planos estarem fadados ao sucesso. A história é pródiga<br />

de exemplos desse tipo, e a maioria esmagadora deles comungava de um<br />

traço comum, que ia além da própria obstinação: o acesso à informação –<br />

ou a uma infraestrutura qualquer que garantia esse acesso. Esse ambiente<br />

de troca aberta de ideias, com mentes brilhantes concentradas em resolver<br />

tarefas similares, em um regime de saudável coopetição , foi decisivo para<br />

dar cabo de problemas embricados e introduzir a revolução que culminou<br />

na criação da Teoria da Relatividade e da Mecânica Quântica.<br />

O ato de criação é profundamente marcante e impele a cultura e o avanço<br />

humanos desde que “descemos das árvores”. Entretanto, essa atividade é<br />

fortemente infl uenciada pelas condições de contorno da sociedade em que<br />

ela acontece. Não fosse Charles Darwin um homem de princípios, e um respeitado<br />

membro da nobreza britânica quando da época da criação da Teoria<br />

da Evolução, Alfred Russel Wallace, o biólogo de origem humilde que vinha<br />

trabalhando por mais de uma década na mesma teoria, jamais teria recebido<br />

crédito algum na co-autoria da importante revelação da referida teoria. Assim,<br />

na vasta maioria das vezes, não basta pioneirismo ou brilhantismo para que as<br />

ideias e conceitos fl oresçam. Há todo um entorno que, senão imprescindível,<br />

é fundamentalmente determinante para dar vazão à genialidade humana.<br />

Afi nal, atores só podem brilhar quando há plateia para aplaudir.<br />

No segmento da TI, a situação desse ambiente de criação era precária,<br />

até que Richard Stallman defi niu o conceito de Software Livre em meados<br />

da década de 1980. Isso levou a IDC a afi rmar em 2006 que “o software de<br />

código aberto é a iniciativa mais importante e abrangente em tecnologia da<br />

informação desde os anos 1980”. Essa iniciativa permitiu o assentamento<br />

das bases de um ecossistema aberto de desenvolvimento de software que<br />

culminou na criação do <strong>Linux</strong> na década seguinte, abriu as portas para a<br />

ascensão do Google e do Facebook uma década mais tarde, levou à criação<br />

da Wikipédia e conduziu à materialização do conceito de computação em<br />

nuvem como o conhecemos hoje, bem como disseminou o uso da computação<br />

móvel. Tudo isso – inclusive o kernel dos produtos da Apple, que ironicamente<br />

foi batizado com o codinome Darwin e é baseado no kernel do<br />

FreeBSD – tem como base o Software Livre. Esse ecossistema democratiza<br />

a atividade de criação de software em todas as plataformas e nos transforma<br />

de partícipes em potenciais artífi ces da história da tecnologia. Agora, cabe<br />

a cada um escolher se deseja ser ator ou permanecer um telespectador da<br />

história contada por esse fi lme.<br />

printf(“G0, F0rr3st, g0!\n”);<br />

Rafael Peregrino da Silva<br />

Diretor de Redação<br />

3<br />

EDITORIAL


ÍNDICE<br />

4<br />

CAPA<br />

Segurança em alta 29<br />

Monitorar e manter seu sistema e rede seguras,<br />

atualmente não é mais um bicho de sete cabeças.<br />

Identidade livre e segura 30<br />

A CAcert fornece diversas opções a seus membros<br />

para obter certifi cados digitais gratuitos.<br />

Invasão com Metasploit 36<br />

O framework para testes de invasão Metasploit fornece<br />

todas as ferramentas que os agressores usam – você<br />

pode até praticar suas habilidades em um servidor<br />

propositalmente inseguro que acompanha o pacote.<br />

Monitoramento efi ciente 42<br />

Se você precisa monitorar redes de grande escala, vai precisar<br />

de um software poderoso. O OpenNMS oferece recursos<br />

robustos de monitoramento em um pacote aberto.<br />

Câmera indiscreta 47<br />

Já imaginou o que mais você poderia fazer com sua webcam?<br />

Apresentamos algumas ferramentas para confi gurar um<br />

sistema doméstico de câmeras de monitoramento.<br />

Em órbita 52<br />

Preveja e rastreie a órbita de satélites e controle equipamentos de<br />

rádio amador com o software de rastreamento de satélites gpredict.<br />

www.linuxmagazine.com.br


COLUNAS<br />

Klaus Knopper 08<br />

Charly Kühnast 09<br />

Augusto Campos 12<br />

Zack Brown 14<br />

Kurt Seifried 16<br />

Alexandre Borges 18<br />

NOTÍCIAS<br />

Geral 20<br />

➧ Mistura de telefone e console portátil da<br />

Sony será lançado com Android 2.3<br />

➧ Canonical disponibiliza Ubuntu 11.04 Alpha 2<br />

➧ Qt não será plataforma de desenvolvimento para<br />

telefones Nokia equipados com o Windows<br />

➧ Logmein apresenta protótipo de aplicativo para<br />

tablets Android Honeycomb no MWC<br />

➧ Parceria entre NVIDIA e Samsung dá origem ao tablet Galaxy Tab 10.1<br />

CORPORATE<br />

Notícias 22<br />

➧ Dell compra a SecureWorks<br />

➧ Tuxera passa a fazer parte da <strong>Linux</strong> Foundation<br />

➧ Servidores vendidos pela Dell nos EUA terão o<br />

Ubuntu Enterprise Cloud pré-instalado<br />

➧ HP anuncia novo diretor de vendas da divisão<br />

Enterprise Services no Brasil<br />

➧ Exército Brasileiro disponibiliza nova solução no Portal do Software Público<br />

➧ Intel se diz desapontada com parceria entre Nokia e Microsoft<br />

Entrevista com Victor Arnaud 24<br />

A ALOG, é um dos principais datacenters do Brasil e atende<br />

aproximadamente 1.200 clientes corporativos nas capitais do<br />

Rio de Janeiro e São Paulo. Confi ra a entrevista realizada com<br />

Victor Arnaud, diretor de processos e produtos, e que fala sobre<br />

os planos para este ano no mercado de cloud corporativo.<br />

Coluna: Jon “maddog” Hall 26<br />

Coluna: Alexandre Santos 28<br />

REDES<br />

Nomes seguros 56<br />

São necessários vários elementos para fortalecer o vulnerável sistema<br />

DNS legado: um protocolo estável, servidores de nome confi áveis,<br />

confi guração efi ciente e, acima de tudo, chaves. Após longa espera, o<br />

DNSSEC fi nalmente está disponível para a zona-raiz, e os domínios de<br />

topo já estão evoluindo ao oferecer compatibilidade com a tecnologia.<br />

<strong>Linux</strong> Magazine #<strong>76</strong> | Março de 2011<br />

SEGURANÇA<br />

Dados seguros 62<br />

Um pequeno descuido pode custar a você horas de trabalho extra ou<br />

milhares de reais para sua empresa. Conheça algumas ferramentas<br />

de backup para ajudar na prevenção e recuperação de falhas.<br />

Proteção de servidores web 70<br />

Até mesmo servidores web confi gurados e atualizados com<br />

correções de segurança, podem ser comprometidos por<br />

conta de vulnerabilidades em aplicações web. O mod_security<br />

é uma extensão do Apache que atua como um fi rewall de<br />

aplicação para proteger o servidor web de ataques.<br />

TUTORIAL<br />

VoIP com Asterisk – parte V <strong>76</strong><br />

O sistema telefônico ultrapassado, presente até pouco<br />

tempo atrás nas empresas, é prolífi co em cobranças:<br />

cada novo recurso ativado requer uma nova ativação de<br />

serviço, com o preço adicionado ao pagamento mensal.<br />

É hora de mudar. É hora de criar sua própria central VoIP.<br />

SERVIÇOS<br />

<strong>Linux</strong> Magazine <strong>76</strong> | ÍNDICE<br />

Editorial 03<br />

Emails 06<br />

<strong>Linux</strong>.local 78<br />

Preview 82<br />

5


COLUNA<br />

12<br />

Coluna do Augusto<br />

A <strong>Linux</strong>.conf.au (LCA) [1] é um evento australiano<br />

que há alguns anos faz parte do calendário do <strong>Linux</strong>, e<br />

que tradicionalmente conta com a presença do criador<br />

do sistema, o fi nlandês Linus Torvalds.<br />

Linus, aliás, tem longos laços com a Austrália – foi lá<br />

que, em um zoológico da capital, o desenvolvedor foi<br />

bicado, ainda na primeira metade da década de 1990,<br />

por um pinguim – fato que acabou tendo relação com<br />

a escolha do mascote do <strong>Linux</strong>.<br />

Já é fato esperado que, a cada participação na LCA,<br />

Linus dê entrevistas a veículos variados, frequentemente<br />

não se furtando a responder questões sobre temas incomuns<br />

ou mesmo a perguntas difíceis.<br />

E na LCA deste ano não foi diferente: entrevistado<br />

por um mantenedor do blog OMG!Ubuntu , o criador<br />

original do kernel deu sua opinião sobre o Ubuntu e,<br />

de quebra, comentou o que pensa sobre o Debian [2] .<br />

Claro que todos somos livres para concordar ou discordar,<br />

mas como se trata de uma opinião vinda de fonte<br />

relevante, vale a pena conhecer e ter assunto para a<br />

hora do cafezinho do lado de fora da sala de servidores.<br />

Sobre o Ubuntu, o resumo é que Linus o testou algumas<br />

vezes ao longo dos anos, enfrentou problemas e<br />

desistiu de utilizá-lo – mas ele entende que desenvolvedores<br />

do kernel não são o público-alvo da distribuição.<br />

A razão pela qual ele diz que testou o Ubuntu é curiosa:<br />

segundo ele, a razão principal é “o que o Ubuntu faz<br />

tão bem, que é deixar o Debian usável”. Se o comentário<br />

não foi claro o sufi ciente, ele explica: “Sempre<br />

senti que o Debian era um exercício sem uma razão,<br />

porque para mim a razão para uma distribuição é fazer<br />

tudo fi car mais fácil. Fácil de instalar, de fi car bonito,<br />

amigável, e o Ubuntu fez isso ao Debian.”<br />

Humildemente discordo de Linus: não gosto de produtos<br />

que se tornam mais complexos do que o necessá-<br />

A opinião de Linus<br />

Em entrevista, Linus Torvalds dá sua opinião<br />

sobre as distribuições Debian e Ubuntu.<br />

rio, mas não acho que toda distribuição é obrigada a ter<br />

a facilidade como seu critério principal. Mas estamos<br />

de acordo quanto à conclusão: o Ubuntu também me<br />

parece muito mais usável e, ao contrário do fi nlandês,<br />

eu faço parte do seu público-alvo, e o uso.<br />

E ele vai além no louvor: “Penso que o Ubuntu fez<br />

um trabalho realmente bom em tornar o <strong>Linux</strong> disponível<br />

a um público maior e diferente, o tipo de público<br />

que vem de uma experiência intrínseca com Windows<br />

e Mac OS X.”<br />

Elogios não enchem a barriga de ninguém, mas ter<br />

esse tipo de endosso por parte de um desenvolvedorchave<br />

do sistema operacional certamente deve ter feito<br />

a alegria de muitos dos seus distribuidores e colaboradores<br />

do Ubuntu – assim como acontece com seus<br />

pares entre distribuições que ele realmente usa em seu<br />

desktop, como o Fedora.<br />

Não vejo grande graça ou vantagem em discutir<br />

distribuições como se fossem times de futebol, mas o<br />

assunto é sempre popular, portanto fi cam registrados<br />

novos argumentos para manter abastecidos os debates<br />

nos próximos meses! ■<br />

Mais informações:<br />

[1] <strong>Linux</strong> Conference Austrália:<br />

http://lca2011.linux.org.au/<br />

[2] Entrevista com Linus publicada no blog omgbuntu.com:<br />

http://www.omgubuntu.co.uk/2011/01/ourexclusive-interview-with-linus-torvalds-lca2011/<br />

Augusto César Campos é administrador de TI e, desde 1996, mantém o<br />

site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo.<br />

www.linuxmagazine.com.br


COLUNA<br />

18<br />

Coluna do Alexandre<br />

É<br />

curioso observar como cada vez mais algumas<br />

empresas estão praticando o pagamento de salários<br />

menores para seus funcionários, mesmo<br />

que estes se tornem cada vez mais especializados e<br />

completos e consigam – com muito esforço e estudo –<br />

certifi cações na área de TI.<br />

As certifi cações de TI estão muito elaboradas atualmente<br />

e criam os melhores fi ltros possíveis para confi<br />

rmar que os candidatos a suas provas sejam, de fato,<br />

merecedores das certifi cações que elas lhes concede.<br />

Entre estas certifi cações mais populares estão: Red Hat<br />

(RHCE e RHCA), Novell (CLP e CLE), Oracle (OCP<br />

e Solaris), EC-Coucil (CEH e CHFI), VMware (VCP<br />

e VCAP), (ISC)2 (CISSP), LPI (LPIC 1, 2 e 3), Cisco<br />

(CCNP, CCNA e CCIE), Symantec (Netbackup, Veritas<br />

Cluster, BE, SEP) etc. Não preciso dizer o quanto<br />

essas empresas ou organizações notáveis dedicam de<br />

esforço e empenho para criar uma marca que tenha<br />

valor no mercado de trabalho mundial.<br />

Na ampla maioria dos países, ter uma certifi cação<br />

dessas representa a certeza de que o profi ssional está<br />

apto a lidar com aquela tecnologia associada e mais<br />

ainda: o peso dessas provas é, inclusive, maior do que<br />

determinados títulos acadêmicos, por vários motivos.<br />

Primeiro, pela qualidade. Segundo, porque, atualmente,<br />

o ensino proporcionado pelas universidades (sobretudo<br />

no Brasil) é via de regra sofrível e o estudante recém<br />

formado não tem condições de atuar no mercado de TI.<br />

Terceiro, por exigir uma educação continuada, ou seja,<br />

impedir o comodismo de simplesmente não se dedicar<br />

mais a aprender.<br />

Mesmo com todos esses argumentos, é muito provável<br />

que você já tenha ouvido a frase: “Ter certifi cação<br />

não quer dizer nada”. Se você ouviu isso, pode ter<br />

certeza de que quem disse isso a você é incompeten-<br />

Você se valoriza<br />

adequadamente?<br />

A importância da especialização, vai além das fronteiras da<br />

remuneração, passando atualmente pelo descaso e desvalorização<br />

dos profi ssionais em algumas empresas do mercado.<br />

te para ser aprovado na avaliação para a certifi cação<br />

e, quase com certeza, não sabe do que está falando.<br />

Essa frase pode vir de um profi ssional de baixa qualifi<br />

cação ou mesmo de um contratante que está diminuindo<br />

o esforço do profi ssional certifi cado para não<br />

precisar valorizá-lo e, assim, não ter de pagar aquilo<br />

que ele vale. Aliás, vou além, perguntando quem está<br />

mais apto: os departamentos de educação das multinacionais<br />

e/ou organizações que empregam tempo,<br />

expertise e dinheiro para qualifi car os profi ssionais<br />

seguidores de suas tecnologias ou alguns gerentes de<br />

TI que muitas vezes nunca lidaram com uma tecnologia<br />

complexa e sabem, no máximo, enviar emails<br />

ou fazer apresentações?<br />

Isso, acima de tudo, representa uma inversão de metas<br />

e valores: ao invés de algumas pequenas e médias<br />

empresas terem como objeto o lucro sobre a venda do<br />

seu produto ou serviço para o cliente, no Brasil, essas<br />

empresas tentam aumentar seu lucro sobre o funcionário,<br />

pagando menos do que o merecido. Há duas razões<br />

para esse comportamento: a conivência de profi ssionais<br />

que aceitam valores abaixo da sua qualifi cação por necessidade<br />

de ganhar dinheiro, todavia desvalorizando<br />

todos os outros profi ssionais de sua área; e a má formação<br />

de gestores, que ainda acreditam ingenuamente<br />

que apresentar resultados de cortes de custos de curto<br />

prazo é mais relevante do que o crescimento sólido da<br />

companhia, sobretudo através da evolução e motivação<br />

profi ssional dos seus comandados.<br />

É possível ter profi ssionais certifi cados que não estejam<br />

aptos o sufi ciente para exercer o cargo pretendido?<br />

Claro que sim. Porém, quantos profi ssionais não certifi<br />

cados têm ainda menos condições de atuar naquele<br />

cargo? Certamente um número muito maior. É fato<br />

que o advento dos simulados deturparam, de início,<br />

www.linuxmagazine.com.br


alguns resultados de provas; contudo,<br />

isso já foi melhorado pelas<br />

principais empresas certifi cadoras<br />

através de tarefas práticas em suas<br />

provas ou, no caso das avaliações<br />

com questões teóricas, do pedido<br />

de análise de cenários e resoluções<br />

de situações críticas.<br />

Outro ponto indispensável é<br />

não acreditar que o fato de saber<br />

uma série de comandos e procedimentos<br />

seja saber tecnologia.<br />

Para qualquer analista que execute<br />

sempre os mesmos procedimentos,<br />

é quase certo que ele<br />

vá acabar decorando tais informações.<br />

No entanto, apenas os<br />

grandes profi ssionais entendem<br />

de fato os conceitos envolvidos,<br />

as possibilidades da tecnologia e<br />

sabem raciocinar de modo fundamentado<br />

para encontrar soluções<br />

para problemas novos e<br />

projetos desafi adores.<br />

O mercado de TI é muito competitivo<br />

e por esse motivo meu<br />

conselho é: estude bastante, não<br />

se importe com profi ssionais que<br />

não têm a mesma competência<br />

que você e, sempre quando<br />

alguma empresa se propuser a<br />

pagar menos do que você realmente<br />

vale, mude de empresa.<br />

As melhores companhias estão<br />

interessadas nos lobos. Deixe as<br />

ovelhas para empresas que, com o<br />

passar do tempo, irão desaparecer<br />

do mercado. ■<br />

Gostou do artigo?<br />

Este artigo no nosso site:<br />

http://lnm.com.br/article/4839<br />

Alexandre Borges (alex_sun@terra.com.br,<br />

twitter: @ale_sp_brazil) é Especialista Sênior<br />

em Solaris, OpenSolaris e <strong>Linux</strong>. Trabalha com<br />

desenvolvimento, segurança, administração e<br />

análise de desempenho desses sistemas operacionais,<br />

atuando como instrutor e consultor.<br />

É pesquisador de novas tecnologias e assuntos<br />

relacionados ao kernel.<br />

<strong>Linux</strong> Magazine #<strong>76</strong> | Março de 2011<br />

19


CORPORATE<br />

28<br />

Tenho visto nos últimos anos vários especialistas<br />

e “interessados” afi rmarem que o fato do <strong>Linux</strong><br />

ter sido portado em alta plataforma “salvou” esses<br />

dinossauros da extinção. Será?<br />

Para avaliarmos se esta afi rmativa faz sentido, é importante<br />

voltar um pouco no tempo. Se observarmos o cenário<br />

de 1999 para cá, podemos perceber que a carga não-linux<br />

nos mainframes continua sadia e sem nenhum sinal de que<br />

será substituída. O uso de mainframes com outros sistemas<br />

está em alta, pois os fornecedores de hardware específi co<br />

ainda têm o compromisso de manter em funcionamento,<br />

mesmo nas máquinas recentes, os bilhões de dólares de investimento<br />

já realizados pelos clientes há décadas. Mesmo<br />

hoje, a quase totalidade das transações fi nanceiras mundiais<br />

passa por uma máquina destas, por suas imbatíveis<br />

características de robustez, segurança e escalonabilidade.<br />

Mas, enfi m, o que mudou com a presença do <strong>Linux</strong> nos<br />

mainframes? Por que esse casamento tem sido tão feliz, mesmo<br />

antes do lançamento recente dos mainframes híbridos?<br />

Para facilitar um pouco a compreensão dessa parceria<br />

campeã pinguim-dinossauro, é importante fazermos<br />

uma rápida comparação entre o que foi considerado por<br />

Através das ferramentas de<br />

virtualização do mainframe,<br />

provisionar um ambiente inteiro<br />

de servidores <strong>Linux</strong> incluindo<br />

produção, homologação e testes<br />

em centenas de máquinas se<br />

torna uma tarefa corriqueira,<br />

otimizada, efi ciente e segura.<br />

Coluna do Alexandre Santos<br />

O <strong>Linux</strong> salvou<br />

os mainframes?<br />

O que mudou com a presença do <strong>Linux</strong> nos mainframes?<br />

Por que esse casamento tem sido tão feliz, mesmo antes<br />

do lançamento recente dos mainframes híbridos?<br />

muitos estrategistas militares uma das maiores revoluções<br />

em máquinas de guerra: “o porta-aviões”.<br />

Essa invenção foi capaz de aliar o benefício de carregar<br />

com segurança enormes contingentes e toneladas de<br />

carga bélica à fl exibilidade dos pequenos e ágeis aviões,<br />

sendo capazes de serem provisionados rapidamente e se<br />

infi ltrar nas linhas inimigas com efi ciência e excelente<br />

relação custo benefício.<br />

Através das ferramentas de virtualização do mainframe<br />

(avós dos atuais hypervisors ), provisionar um ambiente<br />

inteiro de servidores <strong>Linux</strong> incluindo produção, homologação<br />

e testes em centenas de máquinas se torna uma<br />

tarefa corriqueira, otimizada, efi ciente e segura. Grandes<br />

clientes, mesmo aqui no Brasil, já experimentam esse tipo<br />

de abordagem há mais de uma década, provando que essa<br />

combinação, além de efi ciente, tem o melhor TCO ( total<br />

cost of ownership , estimativa fi nanceira projetada para<br />

consumidores e gerentes de empresas para avaliar os custos<br />

diretos e indiretos relacionados todo investimento importante<br />

para a empresa, como software e hardware, além do<br />

gasto inerente de manutenção para mantê-los em funcionamento),<br />

comprovado em centenas de estudos feitos por<br />

órgãos independentes, em clientes no mundo todo.<br />

Essa mudança criou novas oportunidades para os<br />

fornecedores de aplicativos, que agora conseguem<br />

executá-los em sistemas abertos, acessando aplicações<br />

legadas pelo uso de uma arquitetura orientada a serviços<br />

que protegem o investimento realizado. Além disso,<br />

grandes fornecedores de software passaram a investir<br />

bilhões de dólares em sistemas abertos, melhorando a<br />

cada dia as características desse pinguim-turbinado que,<br />

mesmo com pequenas asas, consegue pousar e decolar<br />

nos porta-aviões mais rápidos do mundo. ■<br />

Alexandre Santos (alexos@br.ibm.com) é gerente de estratégia e marketing<br />

de System z da IBM Brasil.<br />

www.linuxmagazine.com.br


Monitoramento e segurança<br />

Segurança em alta<br />

Monitorar e manter seu sistema e rede seguras, atualmente não é mais um bicho de sete cabeças.<br />

por Flávia Jobstraibizer<br />

O monitormento de sistemas e sua respectiva segurança<br />

atualmente são assuntos comuns no dia a dia de um<br />

profi ssional da área de TI, seja ele um analista ou um<br />

especialista em segurança. Os especialistas criam regras<br />

e tentam mantê-las todos os dias, protegendo o maior patrimônio<br />

empresarial dos dias de hoje: a informação. Os<br />

analistas, administradores e todos os outros espectros de<br />

profi ssionais de TI, muitas vezes desconhecem algumas<br />

regras de ouro na proteção da informação e acabam por<br />

ser vítimas de roubo de dados, engenharia social e até mesmo,<br />

por ingenuidade, comentam e entregam informações<br />

importantes da empresa para usuários mal intencionados.<br />

É comum abrir os principais sites de notícias da Internet<br />

e encontrar uma variedade de manchetes sobre<br />

falhas de segurança, dados que deveriam ser confi denciais<br />

e que foram distribuídos através da grande rede,<br />

vulnerabilidades nos aplicativos que você usa todo dia<br />

– seja em seu celular ou em seu computador –, e que<br />

são potenciais facilitadores para que seus dados se tornem<br />

públicos sem que você perceba.<br />

Pensando nisso, nesta edição da <strong>Linux</strong> Magazine , temos<br />

uma grande variedade de artigos sobre monitoramento e<br />

segurança de informações, a começar por um completo<br />

artigo abordando uma das mais importantes vertentes<br />

da segurança de dados: o backup. Diversas ferramentas<br />

de backup são abordadas e comentadas entre seus prós,<br />

contras, uso doméstico ou corporativo e outras variantes.<br />

Matérias de capa<br />

Invasão com Metasploit 36<br />

Monitoramento efi ciente 42<br />

Câmera indiscreta 47<br />

Em órbita 52<br />

<strong>Linux</strong> Magazine #XX | Mês de 200X<br />

As invasões também são uma constante fonte de preocupações<br />

para qualquer usuário de computador, novato<br />

ou especialista. Confi ra o artigo Invasão com Metasploit ,<br />

que irá abrir seus olhos quanto à falhas de segurança que<br />

você nem imaginava existir!<br />

E por falar nisso, você sabia que pode montar um<br />

sistema de vigilância via vídeo, com sua webcam doméstica?<br />

Não deixe de conferir o artigo Câmera indiscreta e garanta<br />

um novo e importantíssimo uso para aquela webcam abandonada<br />

em sua mesa e que até pouco tempo atrás servia<br />

apenas para raras e corriqueiras conversas com amigos.<br />

Outros destaques imperdíveis desta edição são um<br />

artigo sobre DNSSEC, que aborda as melhores formas<br />

de evitar as vulnerabilidades na resolução de nomes<br />

de DNS legados e um artigo cobre CAcert, uma forma<br />

gratuita e livre de obter certifi cados digitais para<br />

aumentar a segurança dos seus sistemas!<br />

Fique seguro e boa leitura!<br />

29<br />

CAPA


SEGURANÇA<br />

62<br />

SEGURANÇA | Ferramentas de backup<br />

Ferramentas de backup<br />

Dados seguros<br />

Um pequeno descuido pode custar a você horas de trabalho extra ou<br />

milhares de reais para sua empresa. Conheça algumas ferramentas de<br />

backup para ajudar na prevenção e recuperação de falhas.<br />

por James Mohr<br />

Computadores têm pouco valor<br />

quando não fazem o que<br />

deveriam, seja porque pararam<br />

de funcionar ou porque não estão<br />

corretamente confi gurados. Sistemas<br />

redundantes e máquinas sobressalentes<br />

são métodos comuns de, em caso<br />

de problemas, voltar rapidamente à<br />

operação, mas não ajudam muito caso<br />

o problema seja causado por confi -<br />

gurações incorretas e esses arquivos<br />

de confi guração sejam copiados para<br />

as máquinas sobressalentes. Às vezes,<br />

a única solução é restaurar as confi -<br />

gurações a partir do backup .<br />

Fazer backup de todos os seus dados<br />

todos os dias não é sempre a melhor<br />

solução. O tempo e o espaço de armazenamento<br />

necessários podem ser<br />

fatores limitantes. Em estações com<br />

apenas alguns arquivos de confi guração<br />

e poucos arquivos de dados, pode<br />

ser sufi ciente guardar esses arquivos em<br />

mídias externas, tais como pendrives e<br />

discos rígidos USB. Então, se o sistema<br />

falhar, pode ser mais simples reinstalar<br />

e restaurar os poucos dados necessários.<br />

Fazer uma recuperação completa do<br />

sistema geralmente leva mais tempo.<br />

Como cada sistema é diferente dos<br />

demais, não existe uma única solução<br />

ideal. Mesmo que você descubra um<br />

produto com todos os recursos que se<br />

possa imaginar, o tempo e o esforço<br />

necessários para administrar o software<br />

devem ser restritivos. Portanto,<br />

é fundamental conhecer os aspectos<br />

mais signifi cativos dos backups<br />

e como eles podem ser abordados<br />

no software escolhido para decidir<br />

qual produto implantar ( quadro 1 ).<br />

Cópia simples<br />

Uma cópia simples dos seus dados para<br />

uma máquina na rede local com o utilitário<br />

rsync iniciado a partir de uma tarefa<br />

agendada ( cronjob ) uma vez por dia é<br />

uma forma efi caz de fazer backup dos<br />

dados quando tudo vem de um único<br />

diretório. Este método é simples demais<br />

para empresas que possuem diversos tipos<br />

de dados diferentes – às vezes tantos<br />

dados que fi ca impossível fazer backup<br />

de tudo todos os dias. Nestes casos, é<br />

preciso decidir o que fará parte do backup<br />

e quando ( quadro 2 ).<br />

Em termos de escolher o que<br />

fará parte do backup e sua respectiva<br />

Quadro 1: Suporte<br />

Uma consideração frequentemente<br />

ignorada é a quantidade de suporte<br />

disponível para o produto escolhido.<br />

O suporte comercial pode ser<br />

necessário no caso de implementação<br />

de uma solução de backup<br />

para empresas. Entretanto, a quantidade<br />

de suporte gratuito (fóruns,<br />

listas de email etc.) pode ser um<br />

problema. Ao considerar softwares<br />

de código aberto de qualquer tipo<br />

para uma empresa, é sempre viável<br />

conferir o site do produto. Se o produto<br />

não possuir atualizações nos<br />

últimos três anos, talvez seja melhor<br />

procurar em outro local. Se os<br />

fóruns possuem poucos posts e a<br />

maioria estiver sem resposta, provavelmente<br />

você também não terá<br />

sanadas as suas dúvidas.<br />

www.linuxmagazine.com.br


Quadro 2: Alternativas de backup<br />

Se você usa <strong>Linux</strong> e seus repositórios de software estão corretamente confi<br />

gurados, há vários aplicativos de backup disponíveis e que podem ser encontradas<br />

por meio da sua ferramenta de instalação (por exemplo, YaST, Synaptic<br />

ou mesmo a Central de Programas do Ubuntu). Na verdade, através<br />

destas ferramentas de instalação é possível descobrir mais de vinte produtos<br />

que se defi nem de uma forma ou de outra como ferramentas de backup<br />

(sem contar aqueles explicitamente para backup de bancos de dados).<br />

Algumas perguntas importantes para se fazer sobre seu software de backup:<br />

Seu hardware tem suporte?<br />

Como o software lida com backups de banco de dados?<br />

É possível fazer uma recuperação dirigida (isto é, para um diretório diferente)?<br />

O software é capaz de verifi car a consistência dos dados após um backup<br />

e restauração?<br />

O software consegue gravar dados em múltiplos volumes?<br />

Você precisa mesmo de todos os recursos que a ferramenta oferece?<br />

O software consegue fazer backup de um sistema remoto?<br />

frequência, os arquivos devem ser escolhidos<br />

por sua importância. Os arquivos<br />

mais importantes são seus dados propriamente<br />

ditos, tais como arquivos de<br />

banco de dados, documentos de texto,<br />

planilhas, arquivos multimídia, emails e<br />

assim por diante. São arquivos únicos e<br />

seria um grande desperdício de tempo e<br />

dinheiro recriá-los caso fossem perdidos,<br />

então precisam permanecer protegidos.<br />

As informações de confi guração de<br />

softwares do sistema, como o Apache<br />

ou seu servidor de email, geralmente<br />

mudam frequentemente, mas ainda<br />

assim esses arquivos também precisam<br />

fazer parte do backup.<br />

A próxima defi nição deve ser a frequência<br />

com que se deve realizar o backup<br />

dos arquivos. Por exemplo, arquivos de<br />

banco de dados podem receber backups<br />

em máquinas remotas a cada quinze<br />

minutos, mesmo que os arquivos estejam<br />

em máquinas de um cluster com<br />

RAID por hardware. Máquinas locais<br />

podem receber backups até duas vezes<br />

por dia: a primeira vez para copiar o<br />

backup do dia anterior para um disco<br />

rígido externo, e a segunda para criar<br />

um novo backup completo. Também<br />

pode ser considerada uma opção, realizar<br />

uma vez por mês a gravação em<br />

DVD dos dados mais importantes,<br />

apenas por segurança ( quadro 3 ).<br />

<strong>Linux</strong> Magazine #<strong>76</strong> | Março de 2011<br />

Onde armazenar?<br />

Algumas empresas estão despreocupadas<br />

quanto ao armazenamento de<br />

várias versões de arquivos de backup<br />

ao longo de extensos períodos de<br />

tempo. Entretanto, em alguns casos<br />

pode ser necessário guardar por meses<br />

ou até mesmo anos essas versões<br />

de backups (como, por exemplo, nos<br />

casos de transações bancárias), e a<br />

única forma efi caz de armazená-los<br />

é em mídias removíveis (um disco<br />

rígido externo, por exemplo). Outras<br />

exigências praticadas por algumas<br />

empresas, como a de guardar os backups<br />

em locais diferentes, frequentemente<br />

acrescentam complexidade ao<br />

problema, pois embora seja possível<br />

guardar arquivos em discos rígidos<br />

ou mídias externas, essa estratégia se<br />

torna pouco prática quando se chega<br />

na casa dos terabytes de dados.<br />

Para decidir qual tipo de mídia de<br />

backup você precisa usar, é preciso<br />

considerar não apenas a quantidade<br />

total de dados, mas também quantas<br />

máquinas devem fazer parte do backup.<br />

Isso envolve a capacidade de<br />

distinguir rapidamente quais serão as<br />

fontes de dados a serem copiadas de<br />

máquinas distintas. Mover um disco<br />

rígido externo entre duas máquinas<br />

pode ser a forma mais fácil, mas com<br />

Ferramentas de backup | SEGURANÇA<br />

20 máquinas defi nitivamente é melhor<br />

cogitar um sistema centralizado.<br />

Neste ponto também é preciso considerar<br />

a velocidade com que se consegue<br />

fazer um backup e possivelmente<br />

recuperar os dados. Há empresas que<br />

possuem tantos dados a serem copiados<br />

que é comum levar mais de um dia para<br />

realizar o backup de todas as máquinas.<br />

Sendo assim, backups completos podem<br />

ser agendados para realização em fi nais<br />

de semana, com seus respectivos incrementais<br />

entre eles. Além disso, em um<br />

ambiente corporativo com dezenas de<br />

máquinas, tentar descobrir exatamente<br />

onde está localizada uma versão específi<br />

ca dos dados aumenta consideravalmente<br />

seu tempo de recuperação.<br />

Por último, também é preciso levar<br />

em conta o custo. Apesar de talvez existir<br />

a tentação de utilizar um único e imenso<br />

disco rígido para armazenamento dos<br />

backups – por este ser mais barato do<br />

que dois discos com metade do tamanho<br />

–, conseguir alternar entre dois (ou<br />

Quadro 3: Incremental<br />

vs diferencial<br />

Devido à quantidade de dados, as<br />

empresas frequentemente possuem<br />

um esquema de backup de duas camadas.<br />

Uma vez por semana, é feito<br />

um backup completo (de todos<br />

os arquivos); nos dias seguintes são<br />

feitos backups somente dos arquivos<br />

que sofreram alteração durante essa<br />

semana. Essa técnica é chamada de<br />

backup incremental. Apesar de economizar<br />

mídia, ela requer, potencialmente,<br />

mais tempo para a recuperação.<br />

Com esse método, primeiro é<br />

preciso recuperar o backup completo<br />

e, dependendo de quais arquivos<br />

foram alterados, talvez seja preciso<br />

acessar todos os backups incrementais<br />

e restaurá-los individualmente.<br />

Uma alternativa é o backup diferencial,<br />

que armazena somente os arquivos<br />

que foram alterados desde o<br />

último backup completo. Ele tem a<br />

vantagem de economizar tempo em<br />

comparação com o backup incremental,<br />

pois o máximo que se pode<br />

ter de recuperar são dois backups.<br />

63


64<br />

SEGURANÇA | Ferramentas de backup<br />

mais) discos acrescenta mais um nível<br />

de segurança aos dados armazenados<br />

caso um dos discos falhe. Além disso,<br />

essa atitude permitiria potencialmente,<br />

que, em caso de necessidade, um dos<br />

discos possa ser levado para um cofre,<br />

ou para uso em outro local.<br />

Perfi s de backup<br />

Atualmente, a adoção da retirada de<br />

todas as unidades externas após um<br />

backup ser completado, é comum em<br />

grandes empresas. Essa ação permite<br />

que tais cópias de segurança sejam<br />

armazenadas em um cofre à prova de<br />

fogo ou em algum local fora da empresa,<br />

para prevenir roubo de informação.<br />

Isto signifi ca que, ao criar backups incrementais,<br />

a cópia mais recente de<br />

um arquivo específi co pode estar em<br />

qualquer uma das dezenas de unidades<br />

externas ( quadro 4 ). Para resolver esse<br />

problema, o software de backup precisa<br />

ser capaz de acompanhar qual versão<br />

de qual arquivo está armazenada em<br />

qual local (isto é, em qual dispositivo).<br />

Quando um software de backup<br />

alcança esse nível, ele geralmente também<br />

é capaz de gerenciar múltiplas<br />

versões de uma determinada cópia<br />

de segurança. Às vezes, também é<br />

preciso criar backups mensais ou até<br />

anuais e que depois são armazenados<br />

por maiores períodos. Essa confi gura-<br />

Quadro 4: Dados de quem?<br />

Um aspecto importante é a capacidade<br />

de gravar dados de fontes diferentes<br />

em mídias específi cas. Por<br />

exemplo, caso cada cliente possua<br />

dispositivos de armazenamento específi<br />

cos (frequentemente chamados<br />

de pool ). Usando seus rótulos, o software<br />

consegue decidir qual dispositivo<br />

pertence a qual pool, então os dados<br />

de ambientes diferentes não são<br />

misturados. Esse esquema é muito<br />

útil quando, por exemplo, um cliente<br />

quer que seus backups semanais<br />

sejam armazenados fora da empresa<br />

e outro cliente frequentemente pede<br />

as fi tas de backup para passá-las por<br />

um sistema de teste local.<br />

ção é comum quando existem dados<br />

sensíveis, como cartões de crédito ou<br />

informações bancárias. Para impedir<br />

que o software sobrescreva dados em<br />

dispositivos antigos, é necessário defi<br />

nir um “tempo de reciclagem” que<br />

especifi que qual é o tempo mínimo<br />

para que a mídia possa ser reutilizada.<br />

Como nem todo backup é igual e<br />

nem todas as empresas são iguais, é<br />

preciso levar em conta a capacidade de<br />

o software ser confi gurado segundo as<br />

suas necessidades. Se você tiver tempo e<br />

espaço de armazenamento sufi cientes,<br />

um software capaz de fazer apenas um<br />

backup completo talvez atenda às suas<br />

necessidades. Por outro lado, talvez você<br />

queira ter a opção de escolher somente<br />

diretórios específi cos, até mesmo ao<br />

realizar um backup completo.<br />

Muitos dos produtos que examinamos<br />

possuem a capacidade de defi nir<br />

perfi s. Por exemplo, você defi ne um<br />

perfi l chamado Minha rede <strong>Linux</strong> ,<br />

atribui a ele um conjunto das máquinas<br />

que serão as fontes de dados para<br />

a cópia de segurança e o software de<br />

backup automaticamente irá selecionar<br />

quais diretórios incluir e quais ignorar.<br />

Já em um outro perfi l, chamado Meu<br />

backup , você pode ter um conjunto<br />

de diretórios diferente, selecionados somente<br />

a partir da sua máquina, e também<br />

pode incluir comandos a serem<br />

executados antes do backup, seguido<br />

de algum outro comando executado<br />

imediatamente após sua conclusão.<br />

Como funciona o<br />

armazenamento<br />

Como são armazenadas as informações<br />

do backup? O software de backup<br />

tem o seu próprio formato interno ou<br />

utiliza um banco de dados como o<br />

MySQL para guardar todas as informações?<br />

Quanto mais sistemas você<br />

armazenar, mais necessário será utilizar<br />

um produto capaz de identifi car<br />

quais arquivos serão salvos e também<br />

onde serão salvos. A menos que você<br />

esteja fazendo um backup comple-<br />

to toda noite para um único destino<br />

(isto é, uma unidade externa ou um<br />

diretório em uma máquina remota),<br />

encontrar o local correto onde está<br />

localizado um arquivo específi co pode<br />

ser um pesadelo. Mesmo que você<br />

esteja lidando somente com alguns<br />

sistemas, a administração dos backups<br />

pode tornar-se um fardo.<br />

Isso leva à questão da facilidade<br />

de recuperação dos seus dados. Você<br />

consegue, com facilidade, encontrar<br />

arquivos de uma data específi ca caso<br />

haja múltiplas cópias deste? Qual a<br />

facilidade de recuperação de arquivos<br />

individuais? E todos os arquivos<br />

alterados em uma data específi ca?<br />

Dependendo da sua empresa, talvez<br />

haja obrigações legais em termos<br />

de quanto tempo é necessário manter<br />

certos tipos de dados. Em alguns casos,<br />

pode ser questão de semanas; em outros,<br />

podem ser dez anos ou mais. Você<br />

consegue recuperar dados tão antigos<br />

assim? Mesmo que não seja necessário<br />

pela lei, ter backups de longo prazo é<br />

uma boa ideia. Se você apagar algo<br />

acidentalmente e não notar por um<br />

período maior que seu ciclo de backup,<br />

talvez jamais recupere esta informação.<br />

Qual a facilidade para seu software de<br />

backup criar cópias completas no fi -<br />

nal de cada mês – por exemplo, para<br />

garantir que a mídia não seja sobrescrita?<br />

São questões pertinentes e que<br />

devem ser levadas em conta.<br />

Agendamento<br />

Se o seu cenário atual impedir que<br />

você faça backups completos rotineiramente,<br />

leve em conta a facilidade<br />

de agendá-los. É possível garantir<br />

que seja feito um backup completo<br />

a cada fi m de semana, por exemplo?<br />

Além disso, é preciso levar em conta<br />

as opções de agendamento da ferramenta<br />

de backup escolhida. Ela consegue<br />

iniciar backups automaticamente? Ela<br />

depende de algum comando? É apenas<br />

uma interface gráfi ca para uma ferramenta<br />

já existente, e todas as operações<br />

precisam ser iniciadas manualmente?<br />

www.linuxmagazine.com.br


Não é porque um sistema operacional<br />

específi co não tem um cliente de backup<br />

que você está sem sorte: é possível<br />

montar sistemas de arquivos com<br />

Samba ou NFS e depois fazer backup<br />

dos arquivos normalmente.<br />

Utilitário rsync<br />

O utilitário rsync está disponível em<br />

todas as distribuições <strong>Linux</strong>, todas as<br />

principais versões de Unix, Mac OS<br />

X e também em Windows. Caso você<br />

tenha apenas algumas máquinas, confi<br />

gurar o rsync manualmente pode ser<br />

uma solução viável. Se você preferir<br />

uma interface gráfi ca, existem várias<br />

disponíveis. Na verdade, muitos aplicativos<br />

diferentes se baseiam no rsync<br />

para realizar backups. O utilitário rsync<br />

pode ser utilizado para copiar arquivos<br />

tanto de uma máquina local para uma<br />

remota quanto o contrário. Seus vários<br />

recursos também o tornam uma ferramenta<br />

útil para sincronizar diretórios.<br />

Por exemplo, o rsync pode ignorar arquivos<br />

que não tenham sido alterados<br />

desde o último backup, e pode apagar<br />

arquivos do sistema de destino que não<br />

existam mais na origem. Se você não<br />

quiser que arquivos já existentes sejam<br />

sobrescritos mas ainda quiser que todos<br />

os arquivos sejam copiados, é possível<br />

solicitar ao rsync que adicione um<br />

sufi xo aos arquivos que já existam no<br />

destino. A capacidade de especifi car<br />

arquivos e diretórios é muito útil para<br />

fazer backups. Ela pode ser utilizada<br />

com o nome completo do arquivo ou<br />

diretório ou então a partir de curingas.<br />

O rsync também permite especifi car um<br />

arquivo como fonte das informações<br />

de inclusão e exclusão de dados. Ao<br />

determinar se um arquivo é uma nova<br />

versão ou não, o rsync pode verifi car seu<br />

tamanho e sua data de modifi cação, e<br />

também pode comparar a chave única<br />

de identifi cação dos arquivos. É possível<br />

usar o modo lote, presente na grande<br />

maioria dos sofwares de backup, para<br />

atualizar múltiplos destinos a partir de<br />

uma única máquina. Por exemplo, alterações<br />

em arquivos de confi guração<br />

<strong>Linux</strong> Magazine #<strong>76</strong> | Março de 2011<br />

podem ser propagadas para todas as<br />

máquinas sem precisar especifi car os<br />

arquivos alterados em cada destino. O<br />

rsync também possui uma interface<br />

gráfi ca, o Grsync ( fi gura 1 ), que é de<br />

fácil utilização.<br />

luckyBackup<br />

A princípio, estávamos em dúvida quanto<br />

a detalhar mais o utilitário luckyBackup<br />

[1] , pois este ainda encontra-se<br />

em uma versão 0.X e tem aparência um<br />

tanto “amadora”. Porém, o ceticismo<br />

quanto à ferramenta rapidamente se<br />

desfaz quando começamos a trabalhar<br />

com ela. O luckyBackup é muito fácil<br />

de usar e oferece um número surpreendente<br />

de opções. Apesar de sua<br />

simplicidade, tem o diferencial de ter<br />

conquistado o terceiro lugar no prêmio<br />

SourceForge <strong>Community</strong> Choice Awards<br />

de 2009 como o “Melhor novo projeto”.<br />

A versão que utilizamos foi a 0.35,<br />

em português, cujo código-fonte está<br />

disponível nos repositórios do Ubuntu,<br />

entre outras distribuições.<br />

Descrevendo a si mesma como uma<br />

ferramenta de backup e sincronização,<br />

o luckyBackup também utiliza<br />

o utilitário de sistema rsync , ao qual<br />

envia várias opções de confi guração.<br />

Embora não seja um aplicativo clienteservidor,<br />

ele só precisa de uma conexão<br />

com o rsync para criar backups a<br />

partir de um sistema remoto.<br />

Ao defi nir quais arquivos e diretórios<br />

farão parte do backup, é criado<br />

um perfi l, que é armazenado no<br />

diretório home do usuário. Os perfi s<br />

podem ser importados e exportados,<br />

o que possibilita criar modelos<br />

de backup que podem ser copiados<br />

para outras máquinas. Mas essas<br />

máquinas ainda irão precisar do binário<br />

do luckyBackup para executar<br />

os comandos do rsync .<br />

Cada perfi l contém uma ou mais<br />

tarefas, cada uma com um diretório<br />

específi co de origem e destino, e inclui<br />

as opções de confi guração selecionadas<br />

( fi gura 2 ). Portanto, é possível ter<br />

opções diferentes para diretórios dife-<br />

Ferramentas de backup | SEGURANÇA<br />

rentes (tarefas), todas em uma única<br />

máquina (com perfi s distintos).<br />

Dentro de um perfi l, a ferramenta<br />

facilita a defi nição de uma tarefa de<br />

recuperação com base em uma determinada<br />

tarefa de backup. Essencialmente,<br />

é o inverso do que se defi niu<br />

para a tarefa de backup, mas é bem<br />

fácil alterar opções para as restaurações<br />

de dados, tais como a recuperação dos<br />

dados para um diretório diferente.<br />

O agendamento dos perfi s de backup<br />

é feito pelo utilitário de agendamento<br />

cron , mas a ferramenta<br />

oferece uma interface simples para<br />

auxiliar o usuário nesse processo. Os<br />

parâmetros do cron são selecionados<br />

na interface gráfi ca; basta clicar na<br />

tarefa de backup a ser agendada.<br />

O modo de console, ou linha de<br />

comando, permite gerenciar e confi<br />

gurar seus backups, até mesmo na<br />

ausência da interface gráfi ca, como<br />

ao usar um terminal Shell. Como os<br />

perfi s são armazenados no diretório<br />

home do usuário, é possível que os<br />

usuários criem seus próprios perfi s<br />

e façam seus próprios backups.<br />

Apesar de não ser recomendado para<br />

grandes empresas, por tratar-se de uma<br />

versão em desenvolvimento, o lucky-<br />

Backup oferece um conjunto básico<br />

de recursos que pode satisfazer usuários<br />

domésticos e pequenas empresas.<br />

Figura 1<br />

Grsyng, uma interface<br />

simples para o rsync .<br />

65


66<br />

SEGURANÇA | Ferramentas de backup<br />

Figura 2 Confi guração de perfi l<br />

do luckyBackup.<br />

Amanda<br />

Inicialmente desenvolvido internamente<br />

na Universidade de Maryland,<br />

nos EUA, o Advanced Maryland Automatic<br />

Network Disk Archiver (Amanda)<br />

[2] é uma das ferramentas de backup<br />

de código aberto mais utilizadas. O<br />

desenvolvimento do software é patrocinado<br />

pela empresa Zmanda [3] ,<br />

que oferece uma versão enterprise do<br />

software, com recursos adicionais, e<br />

que pode ser comprada pelo site da<br />

empresa. A versão para servidores do<br />

software somente pode ser executada<br />

em <strong>Linux</strong> e Solaris (incluindo<br />

OpenSolaris), mas o Mac OS X e as<br />

várias versões do Windows também<br />

possuem clientes do Amanda.<br />

A documentação descreve o aplicativo<br />

como tendo sido projetado para<br />

funcionar em “centros computacionais<br />

de tamanho moderado”. Esta e outras<br />

partes da descrição do produto parecem<br />

indicar que a versão comunitária<br />

gratuita talvez tenha problemas com<br />

redes maiores e com muitos computadores.<br />

Talvez seja essa a razão de a<br />

Zmanda vender uma versão enterprise<br />

do produto. A versão mais recente é a<br />

3.1.1, lançada em junho de 2010, mas<br />

ela apenas corrigiu algumas falhas. A<br />

versão 3.1.0 foi lançada em maio de 2010.<br />

O Amanda armazena o índice dos<br />

arquivos e suas localizações em um<br />

arquivo de texto. Naturalmente, isso<br />

tem o potencial de tornar mais lentas<br />

as buscas quando for necessário recuperar<br />

arquivos específi cos. Entretanto,<br />

a versão comercial usa o MySQL para<br />

guardar as informações.<br />

Os backups de múltiplas máquinas<br />

podem ser confi gurados para execução<br />

em paralelo, mesmo que você tenha<br />

somente um dispositivo para armazenamento<br />

de backups. Os dados são<br />

gravados em um tipo de disco de espera<br />

( holding disk ) e, de lá, vão para<br />

a unidade de armazenamento ofi cial.<br />

Os dados são gravados com o uso de<br />

ferramentas padrão como o tar , o<br />

que signifi ca que os dados podem ser<br />

recuperados independentemente do<br />

Amanda estar instalado na máquina.<br />

O agendamento do backup também<br />

é feito com uma ferramenta local, o cron .<br />

Os comandos iniciam na hora desejada,<br />

utilizando o arquivo de confi guração<br />

correspondente como argumento.<br />

O Amanda suporta o conceito de<br />

unidades virtuais, que são armazenadas<br />

no disco local. Essas unidades podem<br />

ter qualquer tamanho menor que o disco<br />

rígido físico. Essa técnica é útil para<br />

dividir seus arquivos em pedaços sufi -<br />

cientemente pequenos para serem gravados<br />

em DVD ou até mesmo em CD.<br />

Os backups são defi nidos por níveis,<br />

sendo o nível 0 (zero) a indicação de<br />

um backup completo. Os níveis subsequentes<br />

são backups das alterações feitas<br />

neste grupo de arquivos, desde a última.<br />

O wiki da ferramenta indica que o mecanismo<br />

de agendamento do Amanda<br />

usa esses níveis para implementar uma<br />

estratégia de otimização em seus backups.<br />

Apesar de a otimização poder ser<br />

útil em muitas situações, a explicação<br />

é um pouco vaga a respeito de como<br />

ela é alcançada – e descrições vagas de<br />

como um sistema toma decisões sozinho<br />

sempre são incômodas. Um ponto<br />

negativo importante é que o Amanda<br />

foi desenvolvido com um ambiente específi<br />

co em mente, e é possível (senão<br />

provável) que você apanhe um pouco<br />

para fazê-lo funcionar da forma desejada<br />

em outros ambientes. O padrão<br />

desejado de um software, é sempre<br />

confi ar no administrador do sistema.<br />

Sendo assim, se o administrador quiser<br />

confi gurá-lo de uma certa forma, o<br />

produto não deve achar que sabe mais.<br />

Por exemplo, é necessário defi nir se o<br />

mecanismo de agendamento fará backups<br />

completos em momentos diferentes<br />

de quando você espera ou mesmo deseja.<br />

Em muitos casos, grandes datacenters<br />

fazem backups no fi nal de semana<br />

quando o tráfego é menor, e não a cada<br />

cinco dias . Se sua instalação demonstrar<br />

súbitos picos de dados, o Amanda talvez<br />

pense que sabe a data melhor do que<br />

você e altere o agendamento.<br />

Apesar de essas situações poderem<br />

ser resolvidas com ajustes no sistema, é<br />

constante o mau pressentimento quando<br />

um software tem o potencial de fazer<br />

algo inesperado. Afi nal, o administrador<br />

de sistemas é quem foi contratado para<br />

pensar e não apenas para apertar botões.<br />

Para facilitar as coisas nesse sentido, a<br />

Zmanda recomenda seu produto corporativo<br />

comercial, é claro. Apesar de<br />

o Amanda existir há anos e ser usado<br />

por muitas organizações, boa parte das<br />

informações no seu site estão defasadas<br />

e diversos links remeteram ao site<br />

comercial da Zmanda, onde se pode<br />

comprar seus produtos. Além disso, a<br />

página com a lista de recursos desejados<br />

planejados é de 2004. Embora haja<br />

uma nota declarando que a página é<br />

antiga, ainda não existe qualquer explicação<br />

de quais itens da ferramenta<br />

ainda são válidos. Metade das páginas<br />

na tabela de conteúdo administrativo<br />

(atualizada pela última vez em 2007)<br />

simplesmente listam o título sem links<br />

para outra página.<br />

Além disso, devo admitir que fi quei<br />

chocado quando li o “acordo de licença<br />

de contribuição da Zmanda”. O<br />

Amanda é uma ferramenta de código<br />

aberto disponível gratuitamente para<br />

todos. Porém, no acordo, “você atribui<br />

e transfere os direitos autorais da sua<br />

contribuição à Zmanda”. Em troca,<br />

recebe uma longa licença para usar e<br />

distribuir sua contribuição. Traduzido,<br />

isto signifi ca que você abre mão dos<br />

seus direitos autorais e não apenas dá<br />

à Zmanda o direito de usá-los, como<br />

também signifi ca que a Zmanda tem<br />

liberdade para incluir suas alterações<br />

www.linuxmagazine.com.br


em seu produto comercial e ganhar<br />

dinheiro com elas – e você só ganha<br />

uma camiseta!<br />

Areca Backup<br />

Na intermediária do espectro de recursos<br />

e um tanto menos conhecido está o<br />

Areca Backup [4] . Executado a partir<br />

de uma interface gráfi ca ( fi gura 3 ) ou<br />

da linha de comando, o Areca oferece<br />

um design simples e uma ampla gama<br />

de recursos. A documentação afi rma<br />

que ele pode ser executado em todos<br />

os sistemas operacionais que possuam<br />

instalado o Java 1.4.2 ou posterior, mas há<br />

somente pacotes para <strong>Linux</strong> e Windows<br />

disponíveis para download. A instalação<br />

no Ubuntu ocorreu sem problemas e<br />

não foi encontrada nenhuma referência<br />

a limitações com distribuições específi cas<br />

ou outros sistemas operacionais.<br />

O Areca não é um aplicativo clienteservidor,<br />

mas um aplicativo para backup<br />

de sistemas de arquivos locais.<br />

O site do Areca afi rma explicitamente<br />

que o software não é capaz de criar<br />

imagens de sistemas de arquivos ou de<br />

discos inteiros, e não consegue gravar<br />

dados em CDs e DVDs. Os backups<br />

podem ser gravados em máquinas remotas<br />

com FTP ou FTPS, e é possível<br />

fazer backups a partir de sistemas de<br />

arquivos remotos, mas sem nenhum<br />

agente remoto. O Areca não oferece<br />

um agendador, então é esperado que<br />

você utilize algum outro software de<br />

agendamento de tarefas (como o cron )<br />

para iniciar seus backups automaticamente<br />

em horários agendados.<br />

<strong>Linux</strong> Magazine #<strong>76</strong> | Março de 2011<br />

Na minha opinião, a interface não é<br />

tão intuitiva quanto as dos outros, e ele<br />

usa uma terminologia diferente da de<br />

outras ferramentas de backup, tornando<br />

o progresso mais lento no início. Por<br />

exemplo, o diretório de confi guração<br />

se chama workspace (área de trabalho))<br />

e um conjunto de confi gurações (que<br />

podem ser iniciadas de uma só vez) é<br />

chamado de group (grupo), em contraste<br />

com um grupo de máquinas.<br />

O Areca oferece três modos de execução,<br />

que defi nem como os arquivos<br />

serão salvos: padrão , delta e imagem .<br />

O modo padrão é mais ou menos um<br />

backup incremental, que guarda todos<br />

os novos arquivos e também aqueles<br />

modifi cados desde o último backup.<br />

O modo delta armazena as partes<br />

modifi cadas dos arquivos. O modo de<br />

imagem explicitamente não é uma<br />

imagem de disco; basicamente, tratase<br />

de uma fotografi a atual do sistema<br />

que armazena um aglomerado único<br />

de todos os seus arquivos em cada backup.<br />

Os backups padrão (diferencial,<br />

incremental ou completo) defi nem<br />

quais arquivos incluir.<br />

A interface gráfi ca fornece duas<br />

visões dos seus backups. A visão física<br />

lista os arquivos criados por um<br />

determinado destino. A visão lógica<br />

é uma visão consolidada dos arquivos<br />

e diretórios contidos no aglomerado.<br />

O Areca consegue efetuar ações antes<br />

ou depois dos backups, como enviar um<br />

relatório do backup por email, executar<br />

scripts Shell antes ou depois do backup<br />

e assim por diante. Ele também oferece<br />

Ferramentas de backup | SEGURANÇA<br />

diversas variáveis, tais como o nome do<br />

arquivo e do computador, que podem<br />

ser passadas para um script. Além disso,<br />

é possível defi nir múltiplos scripts<br />

e especifi car quando eles devem ser<br />

executados. Por exemplo, é possível<br />

iniciar um script quando o backup for<br />

concluído com sucesso e iniciar outro<br />

caso ele retorne erro.<br />

O Areca oferece várias opções interessantes<br />

para criar backups. Ele permite<br />

comprimir os arquivos individuais<br />

assim como criar um único aglomerado<br />

comprimido. Para evitar problemas<br />

com arquivos muito grandes, é possível<br />

confi gurar o backup para dividir o<br />

aglomerado compactado em arquivos<br />

de um tamanho defi nido. Além disso,<br />

existe a opção de criptografar os arquivos<br />

com os métodos AES 128 ou AES<br />

256. Um aspecto muito agradável da<br />

ferramenta, é a possibilidade de arrastar<br />

diretórios diretamente do gerenciador<br />

de arquivos para o Areca.<br />

O fórum do Areca tem um tráfego<br />

relativamente baixo, mas os posts são<br />

bastante atuais. Entretanto, é possível<br />

notar que diversos posts recentes permanecem<br />

sem resposta há um mês ou<br />

mais. O wiki é bem limitado, então<br />

provavelmente, a melhor fonte de ajuda<br />

é a documentação do usuário, que<br />

é bastante extensa e fácil de entender.<br />

Ainda há dois assistentes para facilitar<br />

a criação de backups. O Backup<br />

Shortcut simplifi ca o processo de criação<br />

dos comandos necessários do Areca,<br />

que em seguida são armazenados<br />

em um script que pode ser executado<br />

Figura 3 Interface do Areca Backup. Figura 4 Tela de administração do Bacula..<br />

67


68<br />

SEGURANÇA | Ferramentas de backup<br />

pela linha de comando ou agendados<br />

através do cron .<br />

O assistente Backup Strategy gera<br />

um script contendo um conjunto de<br />

comandos de backup para implementar<br />

uma estratégia específi ca para o<br />

parâmetro informado. Por exemplo,<br />

é possível criar um backup todo dia<br />

para uma semana, um backup semanal<br />

por três semanas e um backup<br />

mensal por seis meses.<br />

Bacula<br />

O Bacula [5] é um produto incrível.<br />

Embora seja mais novo que o Amanda,<br />

certamente o ultrapassa tanto em<br />

recursos quanto em qualidade. Para<br />

ser honesto, a confi guração não é do<br />

tipo “clicar com o mouse”, mas não<br />

é isso que se espera dada a variedade<br />

de recursos oferecidos pelo Bacula.<br />

Apesar de o aplicativo utilizar<br />

ferramentas locais para a realização<br />

do backup, ele é um produto<br />

verdadeiramente cliente-servidor,<br />

com cinco componentes principais<br />

que usam comunicação autenticada:<br />

Director , Console , File , Storage<br />

e Catalog . Estes elementos são implementados<br />

individualmente com<br />

base na função de cada máquina.<br />

O componente Director supervisiona<br />

todas as operações de backup,<br />

restauração e outras, incluindo o<br />

agendamento das tarefas de backup.<br />

As tarefas de backup podem iniciar<br />

simultaneamente, ou com base em<br />

prioridades. O Director também oferece<br />

controle e administração centralizados<br />

e é responsável por manter o<br />

catálogo de arquivos. O componente<br />

Console é utilizado para interagir<br />

com o componente Director e está<br />

disponível como ferramenta gráfi ca<br />

ou em linha de comando.<br />

O componente File também é<br />

chamado de programa cliente, pois<br />

trata-se do software instalado nas<br />

máquinas que enviarão seus arquivos<br />

para backup. Como seu nome diz, o<br />

componente Storage é responsável<br />

pelo armazenamento e a recuperação<br />

de dados de e para a mídia física. Ele<br />

recebe instruções do Director e em<br />

seguida transmite os dados de ou para<br />

um script de execução em segundo<br />

plano, sendo executado quando for<br />

apropriado. Depois, ele atualiza o<br />

componente Catalog enviando ao<br />

Director informações sobre a localização<br />

dos arquivos.<br />

O componente Catalog é responsável<br />

por manter os índices de arquivos<br />

e o banco de dados de volumes,<br />

permitindo que o usuário localize e<br />

recupere arquivos com rapidez. O Catalog<br />

mantém um registro não apenas<br />

dos arquivos, mas também das tarefas<br />

executadas. Atualmente, o Bacula suporta<br />

MySQL, PostgreSQL e SQLite.<br />

Um aspecto interessante do Bacula<br />

é o interpretador Python embutido<br />

que pode ser usado na confecção de<br />

scripts, por exemplo, antes de iniciar<br />

uma tarefa, ou em caso de erros, ou<br />

ainda quando a tarefa termina e assim<br />

por diante. Além disso, é possível<br />

criar um CD de recuperação para<br />

uma recuperação bare metal (sem<br />

qualquer exigência quanto ao sistema<br />

operacional ou software previamente<br />

instalado), o que evita a necessidade<br />

de reinstalar seu sistema manualmente<br />

e depois recuperar seus dados. Este<br />

processo é suportado por um arquivo<br />

que contém uma forma compactada<br />

de comandos do Bacula, permitindo<br />

assim que se armazene o sistema sem<br />

ter acesso ao componente Catalog.<br />

A unidade básica é chamada de job<br />

(trabalho), e consiste de um cliente e<br />

um conjunto de arquivos, o nível do<br />

backup, o que está sendo feito (efetuando<br />

o backup, migrando, restaurando)<br />

e assim por diante ( fi gura 4 ).<br />

O Bacula suporta o conceito de<br />

media pool , um conjunto de volumes<br />

(isto é, discos ou unidades removíveis),<br />

com volumes rotulados,<br />

de onde é fácil comparar os rótulos<br />

externos da mídia, assim como evitar<br />

a sobrescrita acidental dessa mídia.<br />

Ele também suporta o backup para<br />

uma única mídia a partir de múlti-<br />

plos clientes, mesmo que estejam<br />

em sistemas operacionais diferentes.<br />

O site do Bacula não é sofi sticado<br />

como o do Amanda, mas é mais<br />

útil em virtude de detalhes sobre o<br />

funcionamento do programa serem<br />

muito mais acessíveis e as informações<br />

estarem mais atualizadas.<br />

Conclusão<br />

Embora somente tenhamos analisado<br />

os produtos superfi cialmente, este<br />

artigo oferece uma boa ideia do que<br />

se pode fazer com um aplicativo de<br />

backup. Naturalmente, cada um deles<br />

possui muito mais recursos do que<br />

os examinados aqui, então se algum<br />

deles despertou seu interesse, confi ra<br />

o site correspondente para descobrir<br />

tudo que a solução tem a oferecer. ■<br />

Mais informações<br />

[1] luckyBackup:<br />

http://luckybackup.<br />

sourceforge.net/<br />

[2] Amanda:<br />

http://www.amanda.org/<br />

[3] Zmanda:<br />

http://www.zmanda.com/<br />

[4] Areca Backup:<br />

http://www.arecabackup.org/<br />

[5] Bacula:<br />

http://www.bacula.org/<br />

Sobre o autor<br />

James Mohr é responsável pelo monitoramento<br />

de vários datacenters de um provedor<br />

de soluções corporativas em Coburg, Alemanha.<br />

Além de organizar o site <strong>Linux</strong> Tutorial,<br />

em http://www.linux-tutorial.info, James é autor<br />

de diversos livros e dezenas de artigos sobre<br />

grande número de tópicos.<br />

Gostou do artigo?<br />

Queremos ouvir vir sua opinião. opinião<br />

Fale conosco em<br />

cartas@linuxmagazine.com.br<br />

agazine.c m.br<br />

Este artigo no nosso site:<br />

http://lnm.com.br/article/4854<br />

m.br/ar e/485<br />

www.linuxmagazine.com.br


SEGURANÇA<br />

70<br />

SEGURANÇA | Proteção de servidores web<br />

Apache seguro<br />

Proteção de<br />

servidores web<br />

Até mesmo servidores web configurados e atualizados com correções de segurança, podem ser<br />

comprometidos por conta em vulnerabilidades na aplicações web. O mod_security é uma extensão<br />

do Apache que atua como um firewall de aplicação para proteger o servidor web de ataques.<br />

por Sebastian Wolfgarten e Kemel Zaidan<br />

Problemas de segurança na web<br />

não são mais típicos de resultados de<br />

configurações mal feitas ou em decorrência<br />

do servidor desatualizado.<br />

Tomcat, Apache, e até mesmo o IIS,<br />

tornaram-se extremamente maduros<br />

através dos últimos anos – tanto que<br />

mesmo que eles não tenham nenhuma<br />

vulnerabilidade notável, exceções<br />

podem sempre vir a tona e contrariar a<br />

regra. Além disso, os crackers voltaram<br />

suas atenções para aplicações web e<br />

scripts que são executados nos servidores.<br />

Requisições de usuários cada<br />

vez mais rebuscadas estão tornando as<br />

aplicações web ainda mais complexas:<br />

Ajax, interação com bases de dados externas,<br />

interfaces back-end e serviços<br />

de diretório são parte do conjunto de<br />

uma aplicação moderna. Vetores de<br />

ataques crescem para acompanhar este<br />

desenvolvimento (quadro 1).<br />

Firewalls para a Web<br />

Em contraste aos filtros de pacotes<br />

legados, os WAF (Web Applications<br />

Firewall, ou Firewall de Aplicações<br />

Web) não inspecionam os dados na<br />

camada de rede ou transporte, mas<br />

sim na camada nível 7 do protocolo<br />

HTTP (camada 7 do modelo OSI)<br />

[1]. Para isto acontecer, os firewalls<br />

analisam os pacotes de entrada e saída,<br />

requisições de clientes e respostas de<br />

servidores para distinguirem entre<br />

requisições legítimas e maliciosas<br />

com base em regras.<br />

Se necessário, podem até mesmo<br />

lançar medidas de “contra-ataque”.<br />

Ao serem configurados para isso,<br />

podem até mesmo inspecionar conexões<br />

HTTPS criptografadas.<br />

Acessórios em Massa<br />

Em firewalls da maior parte das redes<br />

– estamos exagerando um pouco<br />

aqui – ou você permitirá alguma ou<br />

nenhuma conexão HTTP. WAF tem<br />

como alvo conexões HTTP individuais<br />

baseadas em seu conteúdo.<br />

O ModSecurity é um WAF de alto<br />

desempenho para o Apache e um<br />

módulo complexo para o servidor de<br />

Web Apache [2]. Originalmente desenvolvido<br />

por Ivan Ristic, o software<br />

conta hoje com o apoio da empresa<br />

Breach Security, que patrocina sua<br />

distribuição e desenvolvimento .<br />

Duas variantes do softwares estão<br />

disponíveis: a variante open-source<br />

licenciada sob a GPLv2 e a versão<br />

comercial, com suporte profissional,<br />

softwares embarcados (appliances)<br />

pré configurados, e console de gerenciamento.<br />

O ModSecurity pode<br />

ser executado no <strong>Linux</strong>, Solaris, FreeBSD,<br />

OpenBSD, NetBSD, AIX e<br />

Windows, com as próximas versões<br />

somente disponíveis para o Apache<br />

2.x. Este artigo discute a versão 2.5.10;<br />

o sucessor, 2.6.11 é meramente uma<br />

correção de falhas.<br />

O escopo funcional do software é<br />

enorme, mas compreensivelmente documentado<br />

[3]. Ele registra requisições<br />

HTTP e dá ao administrador acesso<br />

irrestrito a elementos individuais de<br />

uma requisição, como o conteúdo de<br />

uma requisição POST. Ele também<br />

identifica ataques em tempo real baseado<br />

em modelos de segurança positivos<br />

ou negativos e detecta anomalias<br />

baseado em padrões fornecidos de<br />

vulnerabilidades conhecidas.<br />

www.linuxmagazine.com.br


Quadro 1: Ataques em servidores web<br />

Comparado com aplicações locais, aplicações web são mais vulneráveis<br />

porque elas envolvem diversos componentes diferentes – do navegador de<br />

Internet, ao servidor web e a estrutura de retaguarda. As vulnerabilidades<br />

podem ocorrer em qualquer lugar, mas o servidor está sempre no centro<br />

deste ambiente.<br />

Caso a aplicação web não valide sufi cientemente as entradas do usuário e ao<br />

invés disso forneça as informações a um banco de dados sendo executado em<br />

segundo plano, os invasores poderão usar ataques de SQL injection para injetar<br />

seus próprios comandos na cadeia de comandos. Assim o invasor será capaz de<br />

ler, modifi car, deletar dados e assim exercer uma maior infl uência na aplicação.<br />

Caso a aplicação também permita aos invasores armazenar arquivos no servidor e<br />

executá-los através da web, o invasor poderá confi gurar um Shell web. Isso acontece<br />

porque o servidor executará os arquivos do invasor, e este poderá executar<br />

comandos do sistema operacional no servidor web e fi nalmente escalonar seus<br />

privilégios para ter acesso a um shell interativo. Assim, a arquitetura de um Apache<br />

cuidadoso e confi gurado, não dará acesso root ao invasor, o que é frequentemente<br />

desnecessário para acessar dados sensíveis. E quanto mais serviços estiverem<br />

instalados no servidor, mais provável que o invasor encontre um que seja vulnerável.<br />

Poderosas regras descobrem se os<br />

números de cartões de crédito estão entre<br />

os dados enviados ou utiliza GeoIP<br />

para bloquear o acesso de determinadas<br />

regiões. O ModSecurity verifi ca não<br />

somente requisições de entrada mas<br />

também requisições de saída. O software<br />

pode implementar ambientes chroot.<br />

Como um proxy reverso, ele protege<br />

aplicações em outros servidores web,<br />

como o Tomcat ou o IIS.<br />

A Breach Security também fornece<br />

uma coleção de regras que garantem a<br />

segurança básica do servidor web. Uma<br />

documentação compreensível, muitos<br />

exemplos e listas de discussão fornecem<br />

suporte ao usuário. Isso faz do ModSe-<br />

<strong>Linux</strong> Magazine #<strong>76</strong> | Março de 2011<br />

curity uma boa escolha para proteger<br />

servidores web e suas aplicações contra<br />

vulnerabilidades. Mas antes mesmo<br />

de pensar em alterar as confi gurações<br />

complexas, você primeiro precisará<br />

instalar módulos de terceiros .<br />

Pacotes para<br />

qualquer distribuição<br />

Se optar por não compilar o pacote<br />

para o Apache 2, poderá utilizar um<br />

pacote pré-compilado para Debian,<br />

RHEL, CentOS, Fedora, FreeBSD,<br />

Gentoo e Windows. A instalação<br />

manual requer o módulo mod_unique_<br />

id, que não é automaticamente for-<br />

Tabela 1: Fases de processamento do ModSecurity<br />

Número Fase Designador Atividades<br />

1<br />

2<br />

3<br />

4<br />

5<br />

Fase de<br />

pré-visualização<br />

Requisição<br />

do cliente<br />

Requisição POST<br />

Resposta<br />

do servidor<br />

Logging<br />

REQUEST_HEADERS<br />

REQUEST_BODY<br />

RESPONSE_HEADERS<br />

RESPONSE_BODY<br />

LOGGING<br />

Proteção de servidores web | SEGURANÇA<br />

necido por algumas distribuições.<br />

Você poderá usar a diretiva :<br />

LoadModule security2_module<br />

modules/mod_security2.so<br />

para integrar o módulo no arquivo de<br />

confi guração do Apache httpd.conf ou<br />

apache.conf , caso sua distribuição não<br />

faça isto. Após ser reiniciado, o servidor<br />

web lista o módulo em seu error_log .<br />

Regras de fi ltragem<br />

O ModSecurity tem uma série de opções<br />

confi guráveis, mas para entender como<br />

elas funcionam, tudo que você precisa é<br />

da confi guração básica. A opção SecRuleEngine<br />

ativa o mecanismo de fi ltragem<br />

de módulos e permite processar regras<br />

de fi ltros. As confi gurações que podem<br />

ser usadas aqui são On , Off e DetectionOnly<br />

, que diz ao módulo para monitorar,<br />

mas para não tomar alguma ação<br />

em relação a conexão cliente-servidor,<br />

mesmo que regras individuais estejam<br />

confi guradas para permitir isto. Esta<br />

confi guração é útil para testar módulos<br />

e suas próprias regras. Para auxílio no<br />

início ou para depuração, ative a opção<br />

SecDebugLog para defi nir um log de diagnóstico<br />

(exemplo: SecDebugLog /var/log/<br />

httpd/modsec_debug.log ). Adicionalmente<br />

poderá defi nido o parâmetro<br />

SecDebugLogLevel para especifi car o<br />

detalhamento em uma escala de 0 a<br />

9, que envia comentários sobre sua<br />

própria atividade e a maneira com<br />

que ele processa regras defi nidas pelo<br />

Filtragem o mais cedo possível de requisições antes<br />

do controle de acesso, autenticação, autorização e<br />

detecção MIME que são realizados pelo Apache.<br />

Acesso completo ao conteúdo de<br />

requisições de cliente (caso normal).<br />

Opção inicial para fi ltragem de respostas do servidor.<br />

Acesso completo ao conteúdo de reposta do<br />

servidor a uma requisição de entrada do cliente.<br />

Acesso a todas as informações relevantes antes de que<br />

ela seja gravada nos arquivos de log do Apache.<br />

71


72<br />

SEGURANÇA | Proteção de servidores web<br />

Figura 1: Assim que o ModSecurity for ativado, ele registrará atividades suspeitas no nível de detalhe especifi cado<br />

no SecauditLogParts – neste caso, um ataque SQL Injection.<br />

usuário. Os níveis 4 ou 5 são úteis para<br />

fazer um ajuste fi no ou diagnóstico.<br />

Em ambientes de produção, defi na<br />

este parâmetro como 0 (zero).<br />

O parâmetro SecDefaultAction defi -<br />

ne o comportamento padrão do ModSecurity<br />

para requisições que sejam<br />

condizentes com uma regra de fi ltro<br />

sem uma ação correspondente. A opção<br />

também espera que você especifi que<br />

uma fase de processamento para a ação<br />

padrão, como listado na tabela 1 . O ModSecurity<br />

aplica regras de fi ltragem em<br />

cinco diferentes fases de processamento<br />

e resposta a requisições de clientes [4] .<br />

Na vida real, somente a fase 2, no qual<br />

o cliente requisita o conteúdo, é fi ltrado<br />

(ou seja, dados de entrada), e a fase<br />

4, que manipula a resposta do servidor<br />

(dados de saída) são importantes. Na<br />

prática, você poderá usar a opção de<br />

defi nir uma ou múltiplas ações que<br />

o software fará quando a conferência<br />

ocorrer [5] . Para registrar requisições de<br />

entrada do cliente na auditoria da fase<br />

2 e responder a tentativa de requisição<br />

com a mensagem de erro HTTP 403<br />

(Forbidden) você deverá fazer:<br />

SecDefaultAction phase:2,log,audit<br />

log,deny,status:403<br />

Uma função padrão de negativação<br />

massiva como o padrão deny é altamente<br />

restritivo, mas ele somente oferecerá<br />

uma proteção máxima se você defi nir<br />

fi ltros e ações ( quadro 2 ). O software oferece<br />

algumas alternativas pré-defi nidas,<br />

incluindo parâmetros de conversão de<br />

requisições, execução de scripts externos<br />

(por exemplo, executar um antivírus)<br />

ou redirecionar requisições maliciosas.<br />

O último é útil quando você estiver<br />

investigando ataques ou desejar encaminhá-los<br />

a um honeypot (armadilha<br />

destinada a atrair um invasor). A confi<br />

guração básica ( listagem 1 ) também<br />

registra o conteúdo de requisições de<br />

entrada e respostas retornadas. Ele envia<br />

informações para o log de auditoria<br />

como mencionado anteriormente. A<br />

primeira diretiva, SecAuditEngine , ativa<br />

este comportamento. A opção para a<br />

segunda diretiva defi ne se o software<br />

armazena as entradas do log de auditoria<br />

em um arquivo único ( Serial ) ou<br />

grava um arquivo para cada transação<br />

( Concurrent ). O Concurrent será necessário<br />

caso você tenha a intenção de<br />

implementar o produto ModSecurity<br />

Console add-on (console adicional do<br />

ModSecurity). A Breach Security oferece<br />

um software para gerenciar múltiplas<br />

instâncias, desde que este não precise<br />

monitorar mais do que três servidores.<br />

A terceira instrução, defi ne a localização<br />

do log de auditoria relativa ao<br />

caminho de instalação do Apache.<br />

Finalmente a instrução SecAuditLogParts<br />

defi ne a informação que o ModSecurity<br />

registra no log de auditoria<br />

( tabela 2 ). Neste caso, será o cabeçalho<br />

e conteúdo da requisição, junto<br />

com a reação do ModSecurity. Os<br />

resultados são mostrados na fi gura 1 .<br />

Após esta preparação, você poderá<br />

adicionar a diretiva mais importante<br />

em sua confi guração; SecRule . Esta<br />

Listagem 1: Confi guração<br />

básica do ModSecurity<br />

01 # saída do Dig no arquivo<br />

dnssec_root.key:<br />

01 SecRuleEngine On<br />

02 SecAuditEngine On<br />

03 SecAuditLogType Serial<br />

04 SecAuditLog logs/audit.log<br />

05 SecAuditLogParts ABCFHZ<br />

06 SecDebugLog logs/debug.log<br />

07 SecDebugLogLevel 5<br />

08 SecRule REQUEST_URI “/etc/<br />

passwd”<br />

09 SecDefaultAction phase:2,<br />

log,auditlog,deny,status:403<br />

regra defi ne a fi ltragem e opcionalmente<br />

a ação que o módulo fará se<br />

descobrir que a regra é pertinente. Se<br />

não defi nir uma ação, a ferramenta<br />

executará o comando padrão defi nido<br />

na diretiva em SecDefaultAction . As<br />

regras sempre seguem este padrão:<br />

SecRule Variable Operator [Action]<br />

O número de variáveis é enorme e<br />

elas cobrem cada elemento da requisição<br />

do cliente (tanto para POST quanto<br />

para GET) assim como os detalhes<br />

mais importantes do ambiente servidor<br />

[6]. Além disso, você pode utilizar ex-<br />

Quadro 2: Ataques internos<br />

Uma vulnerabilidade na aplicação<br />

web pode expor o servidor Apache<br />

não importando o quanto ele esteja<br />

bem confi gurado e atualizado. Isto<br />

é particularmente perigoso se o servidor<br />

estiver em uma ambiente de<br />

hospedagem onde muitos consumidores<br />

compartilham os recursos<br />

de um único servidor físico. Os mecanismos<br />

de proteção, como virtualização,<br />

separarão instancias individuais;<br />

no entanto, a segurança de<br />

todo o sistema depende do elo mais<br />

fraco. Com um sniffer (rastreador de<br />

pacotes), por exemplo, os invasores<br />

podem simplesmente capturar conversas<br />

que não estiverem criptografadas.<br />

E isto dará ao invasor um<br />

vetor de entrada.<br />

Linguagens de script e camadas<br />

como PHP ou Ruby on Rails ajudam<br />

desenvolvedores web alcançarem<br />

resultados mais rapidamente, mas<br />

eles geralmente concentram-se em<br />

perigos que podem ocorrer quando<br />

não é dada a devida atenção<br />

a segurança. Em ambientes mais<br />

complexos, como Java, Tomcat e<br />

JBoss, não são necessariamente a<br />

resposta, já que ocultam muitos aspectos<br />

do desenvolvedor.<br />

www.linuxmagazine.com.br


Tabela 2: Argumentos do SecAuditLogParts<br />

Abreviação Descrição<br />

A<br />

B<br />

C<br />

D<br />

E<br />

F<br />

G<br />

H<br />

J<br />

K<br />

Z<br />

pressões regulares. Por exemplo, para<br />

investigar uma requisição HTTP com<br />

o intuito de investigar se o cliente esta<br />

requisitanto a string (cadeia de caracteres)<br />

/etc/passwd com um método<br />

GET, você usaria esta regra:<br />

Secrule REQUEST_URI “/etc/passwd”<br />

Se a requisição for condizente com<br />

a regras, o ModSecurity executará a<br />

ação padrão deny . A fi ltragem por tipo de<br />

navegador poderá ser feita desta forma:<br />

SecRule REQUEST_HEADERS: User-<br />

Agent “nikto”<br />

Este exemplo diz ao servidor web<br />

para recusar tentativas de acesso do<br />

scanner de segurança Nikto [7] . Se<br />

desejar que o Modsecurity execute<br />

uma ação específi ca para uma regra,<br />

você poderá substituir a ação padrão:<br />

Secrule REQUEST_HEADERS: User-<br />

Agent “nikto”<br />

“phase:2,pass,msg:’Scan do Nikto<br />

detectado’”<br />

Esta regra diz ao módulo para gravar<br />

uma mensagem “scan do Nikto<br />

detectado” no arquivo de log quando<br />

<strong>Linux</strong> Magazine #<strong>76</strong> | Março de 2011<br />

Cabeçalho da linha (obrigatório).<br />

Cabeçalho da requisição.<br />

Conteúdo requisitado; somente disponível se o conteúdo<br />

existir e o ModSecurity estiver confi gurado para armazená-lo<br />

Reservado<br />

Conteúdo de resposta temporária; somente disponível<br />

se o Modsecurity estiver confi gurado para isso.<br />

Cabeçalho de reposta fi nal após possível manipulação pelo<br />

ModSecurity; O Apache gravará os cabeçalhos Date e Server.<br />

Reservado<br />

Trailer de auditoria equivalente ao C, exceto que quando a<br />

requisição contém alguma forma de dado; neste caso, o<br />

software construirá uma requisição adequada que exclui<br />

o conteúdo do arquivo para simplifi car as conferências.<br />

Reservado<br />

Lista todas as regras que conferem linha<br />

por linha na ordem da aplicação.<br />

Fim da linha (obrigatório).<br />

detectar que o navegador da requisição<br />

do cliente da fase 2 conferir. A<br />

regra então substitui a ação padrão<br />

drop , que é defi nida por SecDefaultAction<br />

com a ação pass . Isto permite<br />

ao cliente requisições de passagem. A<br />

listagem 1 mostra uma visão geral da<br />

confi guração básica para fi ns de testes<br />

do ModSecurity discutidos até aqui.<br />

Na prática<br />

Após iniciar o Apache, uma requisição<br />

como http://www.exemplo.com/index.<br />

html?file=/etc/passwd conferirá com<br />

a regra modelo da linha 8. Então a<br />

ação defi nida na linha 9 bloqueará<br />

a requisição. O cliente verá um erro<br />

HTTP 403 Forbidden (negado). Ao<br />

mesmo tempo, as linhas 3 a 7 dirão ao<br />

ModSecurity para registrar a transa-<br />

Listagem 2: Requisição bloqueada<br />

Proteção de servidores web | SEGURANÇA<br />

ção no log de auditoria e enviar uma<br />

visão detalhada da maneira como o<br />

cliente foi processado até o log de depuração.<br />

Isto signifi ca que o arquivo<br />

error_log do Apache, terá uma nota<br />

para demonstrar que a requisição do<br />

cliente foi efetivamente bloqueada,<br />

como mostrado na listagem 2 . Uma vez<br />

que o ModSecurity esteja funcionando<br />

corretamente, você poderá iniciar<br />

a adição de regras e modifi cá-las para<br />

as aplicações web que deseja proteger.<br />

A arte de<br />

detectar ataques<br />

Para fornecer proteção efetiva contra<br />

diversos tipos de ataques, os administradores<br />

de sistema precisam confi gurar<br />

um conjunto de regras robustas<br />

para o ModSecurity. Para formular<br />

regras que os protejam contra SQL<br />

injections , scripts cross-site, ou ataque<br />

de inclusão de arquivos locais e<br />

remotos, por exemplo, você precisará<br />

de conhecimento de como ataques<br />

em servidores web funcionam.<br />

É claro que nem todo administrador<br />

tem esse conhecimento e tempo<br />

para reinventar a roda. Para contornar<br />

isso, o projeto Open Web Application<br />

(OWASP) oferece um conjunto de<br />

regras para o ModSecurity [8] que se<br />

apoia na detecção de anomalias para<br />

proteger servidores web contra alguns<br />

ataques padrões, como requisições<br />

inválidas de clientes, SQL injections,<br />

scripts cross-site, e ataques remotos<br />

ou locais de injeção de comandos<br />

ou email. Isso fornece uma proteção<br />

robusta básica, que poderá ser então<br />

modifi cada para se adaptar ao seu ambiente<br />

de aplicações, caso necessário.<br />

01 SecAuditLogType Serial Wed Nov 04 05:39:19<br />

02 [error] client ModSecurity: Access<br />

03 denied with code 403 (phase 2). Pattern match<br />

04 "/etc/passwd" at REQUEST_URI. [file "/usr/local/<br />

05 httpd‐2.2.14/conf/httpd.conf"] [line "420"] [hostname<br />

06 " www.example.com "] [uri "/index.html"] [unique_id<br />

07 "SvFZ138AAQEAAAc4AgQAAAAA"]<br />

73


74<br />

SEGURANÇA | Proteção de servidores web<br />

Listagem 3: Acesso ao GeoIP<br />

01 LoadModule geoip_module modules/mod_geoip.so<br />

02 LoadModule security2_module modules/mod_security2.so<br />

03 GeoIPEnable On<br />

04 GeoIPDBFile /usr/tmp/GeoLiteCity.dat<br />

05 SecRuleEngine On<br />

06 SecGeoLookupDb /usr/tmp/GeoLiteCity.dat<br />

07 SecRule REMOTE_ADDR "@geoLookup"<br />

08 "chain,drop,msg:’Connection attempt from .CN!’"<br />

09 SecRule GEO:COUNTRY_CODE "@streq CN: "t:none"<br />

Para instalar estas regras básicas,<br />

baixe o pacote e descompacte-o no<br />

diretório de confi guração do Apache.<br />

Então mova as regras, incluindo o subdiretório<br />

base_rules para o diretório do<br />

ModSecurity . Você poderá ver os arquivos<br />

de confi guração modsecurity_<br />

crs_10_global_config.conf e modsecurity_<br />

crs_10_config.conf e modifi cá-los para<br />

atender suas necessidades. As regras são<br />

bem documentadas. Adicionalmente<br />

você deverá ativar os logs de auditoria<br />

e depuração para ver exatamente o que<br />

o módulo está fazendo. Para fazer isso,<br />

você precisará incluir as regras padrão<br />

no seu arquivo httpd.conf como segue:<br />

Include conf/modsecurity/*.conf<br />

Include conf/modsecurity/base_<br />

rules/*.conf<br />

Após reiniciar, o seu servidor Apache<br />

terá uma proteção sólida que<br />

responderá com o erro HTTP 403<br />

Figura 2: O site do secretário-geral<br />

da ONU Ban Ki-moon foi<br />

afetado por uma vulnerabilidade<br />

de validação<br />

de parâmetro de variável.<br />

Uma regra ModSecurity<br />

virtual patching protegeu o<br />

website temporariamente<br />

até que o administrador<br />

corrigisse o problema.<br />

para quaisquer requisições de clientes<br />

classifi cadas como ataques.<br />

Os desenvolvedores devem primeiro<br />

testar as regras padrão exaustivamente<br />

em um ambiente de testes antes de<br />

colocá-las em um ambiente de produção.<br />

Caso contrário corre-se o risco<br />

de bloquear acessos de usuários legítimos.<br />

Também é necessário lembrar<br />

que o ModSecurity adicionará uma<br />

carga extra de aproximadamente 5%<br />

no processamento do seu servidor web.<br />

Evitando ataques<br />

nas Nações Unidas<br />

Em algumas situações, você não<br />

pode corrigir uma vulnerabilidade<br />

em aplicações web imediatamente.<br />

Imagine uma loja online descobrindo<br />

uma falha de segurança uma semana<br />

antes do Natal e serão necessários diversos<br />

dias para corrigir o problema,<br />

signifi cando que a loja deverá fi car<br />

offl ine durante aquele tempo: o dono<br />

deverá tomar uma decisão: viver com<br />

o risco e manter a loja, incluindo a<br />

vulnerabilidade online e assim tendo<br />

o benefício da lucratividade das compras<br />

de Natal, ou proteger a empresa<br />

e seus consumidores desligando o website<br />

e corrigindo a vulnerabilidade.<br />

O ModSecurity fornece uma<br />

técnica para contornar o problema<br />

na forma de um patch virtual, permitindo<br />

defi nir uma ou mais regras<br />

que evitem que a vulnerabilidade<br />

seja explorada, porém sem removê-la.<br />

A documentação do ModSecurity<br />

refere-se ao caso que data do ano de<br />

2007, quando tentaram invadir o site<br />

das Nações Unidas [9] . A sub-página de<br />

comunicação com o secretário General<br />

Ban Ki-moon [10] teve o parâmetro<br />

statID que expôs uma vulnerabilidade<br />

SQL Injection ( fi gura 2 ). Se descobrir<br />

uma vulnerabilidade deste tipo, você<br />

poderá temporariamente defi nir uma<br />

regra para o Modsecurity que evitará que<br />

os hackers explorem a vulnerabilidade<br />

mesmo que ela continue a existir. No<br />

entanto, esta não é uma boa solução a<br />

longo prazo, pois ela não evita um desastre<br />

até que os desenvolvedores web<br />

removam a vulnerabilidade do código<br />

fonte da página. A seguinte solução<br />

deverá funcionar para corrigir a falha:<br />

<br />

SecRule &ARGS “!@eq 1”<br />

SecRule ARGS_NAMES “!^statid$”<br />

SecRule ARGS:statID “!^\d{1,3}$”<br />

<br />

Três linhas adicionadas em um container<br />

de localização do Apache asseguram<br />

que as requisições válidas de usuários<br />

para o arquivo statements_full.asp<br />

somente serão permitidas se tiverem um<br />

argumento (primeira regra) chamado<br />

statid (segunda regra) com números<br />

de 1 a 3 dígitos (terceira regra) como<br />

terceiro parâmetro. Quaisquer requisições<br />

que não seguirem este padrão,<br />

serão limpas pela ação padrão, como<br />

defi nido em SecDefaultAction . Isto efetivamente<br />

evitará que um invasor explore<br />

a vulnerabilidade de SQL injection.<br />

Sem informações<br />

internas<br />

O Modsecurity também fi ltra dados<br />

de saída, especifi camente requisições<br />

de respostas do servidor para<br />

informações internas. A linguagem<br />

de programação PHP mostra mensagens<br />

de erro desta forma:<br />

Fatal Error: Connecting to MySQL<br />

server ‘dbserv.example.com’ failed.<br />

No entanto, você poderá desativar<br />

mensagens de erro do PHP nas<br />

respostas. O Google lista uma série<br />

de sites onde mensagens de erros de<br />

www.linuxmagazine.com.br


PHP revelam muitos detalhes das aplicações.<br />

Estas informações são muito<br />

úteis a invasores, pois podem ajudá-los<br />

a entender o funcionamento interno<br />

e a estrutura de uma aplicação web e<br />

direcionar melhor o ataque. Para dizer<br />

ao ModSecurity para bloquear mensagens<br />

de erro do PHP e evitar que<br />

estas sejam exibidas aos usuários, você<br />

poderá defi nir uma regra como esta:<br />

SecRule RESPONSE_BODY “Fatal error:”<br />

O cabeçalho RESPONSE_BODY refere-se<br />

ao conteúdo de respostas a um cliente,<br />

e apesar de não ser particularmente<br />

elegante, ele indica o que você potencialmente<br />

tem em mãos. Com uma<br />

expressão regular cuidadosamente<br />

trabalhada, você pode, por exemplo,<br />

utilizar a mesma técnica para evitar<br />

que números de cartões de crédito<br />

sejam revelados por uma aplicação<br />

web comprometida após um ataque<br />

de SQL injection feito com sucesso.<br />

Localização geográfi ca<br />

Outro cenário avançado para o ModSecurity<br />

envolve cooperar com um<br />

provedor GeoIP, o Maxmind [11] . O<br />

GeoIP localiza os usuários geografi -<br />

camente, a partir do seu endereço IP,<br />

o que signifi ca que poderá restringir<br />

o acesso de um website a uma região<br />

específi ca, por exemplo, a Pensilvânia<br />

– se você administrar um site com conteúdo<br />

em Holandês da Pensilvânia que<br />

ninguém mais entenda – e ou bloquear<br />

totalmente um determinado país.<br />

Para fazer isto, você deverá instalar o<br />

módulo mod_geoip2 no Apache2, junto<br />

com o software GeoIP e o banco de<br />

dados GeoLitecity.dat [12] .<br />

Imagine que o engenheiro mecânico<br />

de uma empresa da Alemanha esteja<br />

preocupado com a possibilidade de espionagem<br />

industrial vinda do oriente;<br />

neste caso, ele deverá usar a confi guração<br />

da listagem 3 para evitar o acesso a<br />

partir da China – isso se os usuários da<br />

China não falsifi carem a sua origem. As<br />

últimas duas linhas formam uma cadeia<br />

de regras de fi ltragem. A linha 6 localiza<br />

a região geográfi ca para o endereço<br />

IP de requisição, então a linha 7 efetua<br />

a requisição e envia a mensagem para<br />

um arquivo de log caso ela venha da<br />

China. Isto pode não ser politicamente<br />

correto, mas é tecnicamente efetivo.<br />

Conclusão<br />

O ModSecurity possui um grande escopo<br />

de características, e pode levar<br />

algum tempo para entendê-lo completamente.<br />

Mas se você enfrentar o<br />

desafi o de desvendar as profundezas<br />

deste módulo, ele te retornará dividendos<br />

através de métodos compreensivos<br />

que darão proteção adicional contra<br />

ataques em aplicações web, graç as ao<br />

esquema de regras pré-defi nidas que<br />

torna o inicio fácil. E também ao desenvolvedor<br />

por trás do projeto que<br />

fornece produtos comerciais e serviços<br />

como treinamentos. Os administradores<br />

armados com o ModSecurity, podem<br />

sentar-se bem no alto de suas suas celas,<br />

até mesmo se invasores estiverem<br />

tentando derrubá-los do cavalo. ■<br />

Sobre os autores<br />

Sebastian Wolfgarten trabalha como especialista<br />

de segurança da informação com<br />

o Banco Central da Europa como um consultor,<br />

gerente e auditor de projetos internos<br />

com o objetivo de aumentar a segurança da<br />

infraestrutura de TI. Antes disto, ele passou<br />

diversos anos trabalhando para o Ernst &<br />

Young AG na Alemanha e como um assessor<br />

de Segurança da Informação na Irlanda.<br />

Ele também trabalhou como perito em segurança<br />

da informação na T-Mobile Alemanha.<br />

Kemel Zaidan é escritor com formação em<br />

dramaturgia pela USP. Membro ativo da comunidade<br />

Ubuntu e de software livre brasileira,<br />

graduando em Análise de Sistemas<br />

pela FATEC, Faculdade de Tecnologia de<br />

São Paulo, já palestrou em diversos eventos<br />

pelo país e é editor da <strong>Linux</strong> <strong>New</strong> <strong>Media</strong>.<br />

Gostou do artigo?<br />

Queremos ouvir sua opinião.<br />

Fale conosco em<br />

cartas@linuxmagazine.com.br<br />

agazine.com br<br />

Este artigo no nosso site: te:<br />

http://lnm.com.br/article/4885<br />

m.br/ar /488<br />

Mais informações<br />

[1] Melhores Práticas da<br />

OWASP: Uso de fi rewalls<br />

para aplicações web: http://<br />

www.owasp.org/index.php/<br />

[2] ModSecurity:<br />

http://modsecurity.org /<br />

[3] Manual de referencia<br />

do modSecurity:<br />

http://modsecurity.<br />

org/documentation/<br />

modsecurity-apache/2.5.10/<br />

html-multipage<br />

[4] Fases de processamento<br />

do ModSecurity:<br />

http://modsecurity.<br />

org/documentation/<br />

modsecurity-apache/2.5.10/<br />

html-multipage/<br />

processing-phases.html<br />

[5] Ações do ModSecurity:<br />

http://modsecurity.org/<br />

documentation/modsecurityapache/1.9.3/htmlmultipage/05-actions.html<br />

[6] Variáveis do ModSecurity:<br />

http://modsecurity.org/<br />

documentation/modsecurityapache/2.1.0/htmlmultipage/05-variables.html<br />

[7] Nikto:<br />

http://cirt.net/nokto2<br />

[8] Projeto da OWASP<br />

de regras padrões do<br />

ModSecurity: http://www.<br />

owasp.org/index.php/<br />

[9] Blog do ModSecurity,<br />

“Correções virtuais durante<br />

reposta a incidente: Deface<br />

das Nações Unidas”:<br />

http://blog.modsecurity.<br />

org/2007/08/27/<br />

[10] Conferencias do Secretário<br />

Geral das Nações Unidas:<br />

http://www.un.org/apps/<br />

news/infocus/sgspeeches/<br />

[11] Serviço de prevenção à<br />

fraudes GeoIP Maxmind:<br />

http://www.maxmind.com/<br />

[12] Bloqueando tráfego<br />

específi co de países com<br />

o Apache ModSecurity e<br />

o GeoIP por Suvabrata<br />

Mukherjee: http://<br />

linuxhelp123.wordpress.<br />

com/2008/12/11/apache


TUTORIAL<br />

<strong>76</strong><br />

TUTORIAL | VoIP com Asterisk - Parte V<br />

Asterisk descomplicado<br />

VoIP com<br />

Asterisk – parte V<br />

O sistema telefônico ultrapassado, presente até pouco tempo atrás nas empresas, é prolífi co<br />

em cobranças: cada novo recurso ativado requer uma nova ativação de serviço, com o preço<br />

adicionado ao pagamento mensal. É hora de mudar. É hora de criar sua própria central VoIP.<br />

por Stefan Wintermeyer<br />

Na edição 75 da <strong>Linux</strong> Magazine<br />

, apresentamos recursos<br />

como ramifi cações no plano<br />

de discagem, operações aritméticas<br />

com expressões e operações sobre texto.<br />

Você pôde conhecer ainda o que<br />

é e como funciona o banco de dados<br />

do Asterisk, e como terceirizar partes<br />

do plano de discagem. Nesta quinta<br />

parte do tutorial, vamos abordar controles<br />

remotos e estacionamento de<br />

chamadas. Mãos à obra!<br />

Controle remoto<br />

Uma instalação do Asterisk sem<br />

patches tem basicamente três formas<br />

de ser controlado remotamente:<br />

➧ com o comando asterisk -rx<br />

;<br />

➧ com arquivos de chamada ( callfi les );<br />

➧ pelo gerenciador Asterisk Manager<br />

Interface – AMI.<br />

A opção -rx no comando asterisk<br />

é uma interface conveniente para<br />

automatizar scripts Shell e a criação<br />

Listagem 1: Arquivo<br />

features.conf<br />

01 parkext => 700<br />

02 parkpos => 701-720<br />

03 context => parkedcalls<br />

04 parkingtime => 45<br />

05 blindxfer => #1<br />

06 atxfer => *2<br />

e consulta de variáveis do Asterisk.<br />

Por exemplo, executar o comando<br />

asterisk -rx ‘sip show peers’ no<br />

console listará os pares SIP.<br />

Os arquivos de chamada são miniscripts<br />

sem inteligência, executados<br />

automaticamente pelo Asterisk se<br />

localizam no diretório /var/spool/<br />

asterisk/outgoing/ . Se a data do<br />

arquivo de chamada estiver no futuro<br />

(digamos que você salvou seu<br />

arquivo de chamada com uma data<br />

de daqui três meses, por exemplo), é<br />

possível agendar eventos como chamadas<br />

de despertador, por exemplo.<br />

Um arquivo simples pode conter as<br />

seguintes linhas:<br />

Channel: SIP/500<br />

Context: chamada-interna<br />

Extension: 501<br />

Assim que o Asterisk solicitar<br />

um callfi le, o telefone SIP 500 será<br />

chamado e o Asterisk irá esperar até<br />

que o telefone seja atendido. Quando<br />

isso ocorrer, o Asterisk iniciará a<br />

extensão 501 no contexto chamadainterna<br />

, que chama o telefone 501<br />

e permite, assim, a conexão entre<br />

as duas pontas da chamada. Estes<br />

arquivos de chamada parecem, a<br />

princípio, muito simples, mas, para<br />

muitos profi ssionais Asterisk, são o<br />

meio encontrado para o controle<br />

de processos bem mais complexos.<br />

A AMI é, teoricamente, a ferramenta<br />

mais poderosa e mais complexa de todas.<br />

Uma complicação extra é o fato de que<br />

seu processamento em grandes sistemas<br />

telefônicos sempre sofre panes. O serviço<br />

AMI do Asterisk pode ser alcançado<br />

via telnet , o que permite o acesso por<br />

outros e inseguros serviços. Para usar a<br />

AMI, consulte a documentação [1] .<br />

Briga no<br />

estacionamento<br />

Para “estacionar” chamadas em andamento,<br />

é preciso observar o arquivo<br />

features.conf ( listagem 1 ). Na linha<br />

parkext => 700 é defi nida a extensão<br />

na qual o usuário pode estacionar a<br />

chamada. Os números das “vagas”<br />

no estacionamento são defi nidos pela<br />

diretiva parkpos => 701-720 .<br />

A linha parkingtime => 45 , defi ne<br />

o tempo de estacionamento da chamada<br />

em segundos. Com isso, o Asterisk<br />

retorna a conversa estacionada<br />

automaticamente à extensão original.<br />

Para atender uma chamada estacionada,<br />

desligá-la ou transferi-la para outra<br />

extensão, basta selecionar o número<br />

da “vaga” ocupada por ela. Para isso,<br />

é preciso adicionar o contexto de estacionamento<br />

ao seu plano de discagem<br />

– caso contrário, o Asterisk não<br />

encontrará a posição da vaga ( quadro 1).<br />

www.linuxmagazine.com.br


Listagem 2: Inclusão de<br />

arquivos externos<br />

01 [vendas]<br />

02 include => emergencia<br />

03 include => interna<br />

04 include => externa<br />

05<br />

06 [producao]<br />

07 include => emergencia<br />

08 include => interna<br />

09<br />

10 [interna]<br />

11 exten => _XX,1,Dial(SIP/<br />

${EXTEN},90)<br />

12 exten => _XX,n,Voicemail<br />

(${EXTEN},u)<br />

13 exten => 99,1,VoiceMailMain<br />

(${CALLERID(num),s)<br />

14<br />

15 [externa]<br />

16 exten => _0X.,1,Dial(SIP/<br />

${EXTEN:1}@ProvedorSIP)<br />

17<br />

18 [emergencia]<br />

19 exten => 190,1,Dial(SIP/<br />

${PREFIXO}190@ProvedorSIP)<br />

20 exten => 193,1,Dial(SIP/<br />

${PREFIXO}193@ProvedorSIP)<br />

Planos de<br />

discagem claros<br />

Mesmo que o seu plano de discagem<br />

seja bem estruturado com expressões<br />

regulares, instalações de médio porte podem<br />

fi car desorganizadas. Felizmente,<br />

é possível usar a linha #include arquivo<br />

para incluir arquivos inteiros no plano<br />

de discagem. No plano de discagem em<br />

uso, digite include nomesdoscontextos<br />

para incluir os contextos. Isso pode ser<br />

visto no exemplo da listagem 2 . Nele,<br />

todos telefonam a partir do contexto<br />

vendas , internamente sem alteração<br />

e externamente com o uso de um 0<br />

(zero) no início. Ambos os contextos<br />

permitem telefonar para os números<br />

de emergência 190 e 193 (e você pode<br />

adicionar outros números de emergência,<br />

caso deseje). Nas linhas 19 e<br />

20 , observe que o ${PREFIXO} guarda o<br />

código de área que está armazenado<br />

em uma variável. Também deve-se verifi<br />

car com o provedor SIP se ele roteia<br />

corretamente esses números.<br />

<strong>Linux</strong> Magazine #<strong>76</strong> | Março de 2011<br />

Temporização<br />

com includes<br />

Com os includes , é possível estruturar<br />

seu plano de discagem não apenas<br />

com mais facilidade e clareza, mas<br />

também utilizá-los para ocasiões distintas.<br />

A sintaxe é emprestada pelo<br />

crontab , e fi ca parecida com:<br />

include=>contexto|horas|dia da<br />

semana|dia do mês|mês<br />

No caso de múltiplos includes ,<br />

o Asterisk os lê de cima para baixo.<br />

Um exemplo típico para empresas<br />

é mostrado na listagem 3 .<br />

Desde o começo desta série de<br />

tutoriais, você aprendeu a utilizar<br />

as ferramentas para programar novas<br />

aplicações telefônicas com fl uxos de<br />

dados complexos – com lógica, baseadas<br />

em tempo e com interatividade<br />

com arquivos de voz.<br />

Na próxima edição da <strong>Linux</strong> Magazine<br />

, você aprenderá como misturar<br />

ISDN e telefones analógicos ao Asterisk<br />

e à telefonia VoIP e também sobre<br />

como trabalhar com fax e adaptadores<br />

de telefone analógico (ATAs). Até lá! ■<br />

VoIP com Asterisk - Parte V | TUTORIAL<br />

Quadro 1: <strong>Media</strong>ção e “estacionamento” de chamadas<br />

Todo administrador que usa Dial(SIP/1234) para chamar o telefone 1234 tem<br />

a chance de mediar a conversação já estabelecida. No Asterisk, este recurso<br />

já está embutido na aplicação Dial() e pode ser ativado com um único parâmetro.<br />

Com o parâmetro T , o originador da chamada tem a possibilidade de<br />

transferir a chamada, e com t (minúsculo), o receptor da chamada pode fazer<br />

o mesmo. Então, Dial(SIP/1234,,tT) cria a conectividade citada acima.<br />

A forma como os demais participantes se juntarão à chamada é defi nida pelo arquivo<br />

/etc/asterisk/features.conf . Ele especifi ca, por exemplo, blindxfer=>#1 ,<br />

que passa a ser a combinação de teclas da “transferência às cegas” ( Blind Transfer<br />

), no jargão do Asterisk. Para transferir uma chamada para o telefone interno 345 ,<br />

digite, sob estas condições, a combinação de teclas [#][1][3][4][5] e pressione o botão<br />

de transferir do seu aparelho (caso possua) ou aguarde o timeout .<br />

Algumas linhas abaixo, ainda no arquivo features.conf , é defi nida a combinação<br />

para transferência assistida ( attended transfer ) como atxfer => *2 .<br />

Esta função informa, antes de transferir a chamada, que o destino será o número<br />

345 . A versão 1.4 do Asterisk tem algumas diferenças relativas à forma<br />

como são feitas as transferências às cegas e assistidas.<br />

Para a maioria dos usuários, a melhor forma é a transferência assistida, pois eles<br />

podem simplesmente desligar caso não desejem ser transferidos. Dependendo<br />

do tipo de telefone, a função de transferência pode ter uma tecla específi ca.<br />

Listagem 3: Arquivo<br />

extensions.conf<br />

01 ; Feriados<br />

02 include =><br />

feriado|*|*|24|dec<br />

03 include =><br />

feriado|*|*|01|jan<br />

04<br />

05 ; Dia<br />

06 include => diautil|09:00-<br />

18:00|mon-fri|*|*<br />

07 include => diautil|09:00-<br />

18:00|sat|*|*<br />

08<br />

09 ; Caso não coincida com<br />

nada, deve ser noite.<br />

10 include => noite<br />

Mais informações<br />

[1] Documentação do AMI:<br />

http://www.asterisk.org/<br />

astdocs/node201.html<br />

Gostou do artigo? rtigo?<br />

Queremos ouvir sua opinião.<br />

Fale conosco em<br />

cartas@linuxmagazine.com.br<br />

gazine.com r<br />

Este artigo no nosso site: e:<br />

http://lnm.com.br/article/4854<br />

m.br/ar /485<br />

77


SERVIÇOS<br />

80<br />

Calendário de eventos<br />

Evento Data Local Informações<br />

Web Security Forum 09 e 10 de abril São Paulo, SP<br />

Seminário de<br />

Cloud Computing<br />

www.websecforum.com.br/<br />

evento/<br />

13 de abril São Paulo, SP www.ideti.com.br/cloud/<br />

8º CONTECSI 1 a 3 de junho São Paulo, SP<br />

<strong>Linux</strong>Con Brasil 2011<br />

17 e 18 de<br />

novembro<br />

São Paulo, SP<br />

http://www.tecsi.fea.usp.br/<br />

eventos/contecsi/<br />

http://events.linuxfoundation.<br />

org/events/linuxcon-brazil<br />

Nerdson – Os quadrinhos mensais da <strong>Linux</strong> Magazine<br />

Índice de anunciantes<br />

Empresa Pág.<br />

Tecla 02<br />

Othos 07<br />

Plusserver 08<br />

Central Server 13<br />

UOL Host 15<br />

Senac 25<br />

Komputer 35<br />

Impacta 41<br />

F13 51<br />

WatchGuard 69<br />

SOA + Cloud Symposium 81<br />

Bull 83<br />

Sony 84<br />

www.linuxmagazine.com.br


PREVIEW<br />

82<br />

<strong>Linux</strong> Magazine #77<br />

Ubuntu User #22<br />

Tablets<br />

Os tablets estão tomando conta do<br />

mercado de dispositivos móveis. Muitos<br />

usuários estão até mesmo apostando seus<br />

netbooks e smartphones, inutilizando-os<br />

em detrimento desta novidade portátil.<br />

Muitas são as opções de escolha, desde<br />

aparelhos simples, com recursos básicos,<br />

até verdadeiros super minicomputadores,<br />

com poder de processamento, velocidade<br />

e memória compatíveis com desktops,<br />

smartphones e notebooks poderosos.<br />

Aliando forma à função, os tablets atualmente<br />

possuem capacidade para ver<br />

vídeos, fazer ligações, navegar na Internet<br />

e até mesmo desenvolver software!<br />

Na próxima edição da <strong>Linux</strong> Magazine,<br />

você vai conhecer alguns destes<br />

poderosos aparelhos, seus sistemas e<br />

particularidades. Não perca! ■<br />

Ubuntu 11.04<br />

O novo Ubuntu 11.04, codinome Natty<br />

Narwhal, está saindo do forno. Muitas<br />

mudanças são esperadas e previstas para<br />

este lançamento. Entre elas, podemos<br />

destacar o novo modo de organização<br />

da área de trabalho, que agora utiliza<br />

o Unity, interface de usuário padrão<br />

adotada pela versão 10.10 para netbooks,<br />

embora o Gnome continue ativo e funcional<br />

no sistema. Os recursos multitouch<br />

também vêm aperfeiçoados e com<br />

muitas novidades.<br />

www.linuxmagazine.com.br

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!