Community Edition 76 - Linux New Media
Community Edition 76 - Linux New Media
Community Edition 76 - Linux New Media
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