Вы находитесь на странице: 1из 30

Expediente editorial

Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br Editores Flvia Jobstraibizer fjobs@linuxmagazine.com.br Kemel Zaidan kzaidan@linuxmagazine.com.br Editora de Arte Larissa Lima Zanini llima@linuxmagazine.com.br Estagirio Felipe Brumatti Sentelhas fsentelhas@linuxmagazine.com.br Colaboradores Alexandre Borges, Alexandre Santos, Augusto Campos, Charly Khnast, Eva-Katharina Kunst, Greg KroahHartman, Jon maddog Hall, Jrgen Quade, Klaus Knopper, Kurt Seifried, Ralf Spenneberg, Stefan Schwarz, Thorsten Scherf, Tim Schrmann, Udo Seidel, Zack Brown. Traduo Emerson Satomi, Joice Kfer. Reviso Ana Hunger Editores internacionais Uli Bantle, Andreas Bohle, Jens-Christoph Brendel, Hans-Georg Eer, Markus Feilner, Oliver Frommel, Marcel Hilzinger, Mathias Huber, Anika Kehrer, Kristian Kiling, Jan Kleinert, Daniel Kottmair, Thomas Leichtenstern, Jrg Luther, Nils Magnus. Anncios: Rafael Peregrino da Silva (Brasil) anuncios@linuxmagazine.com.br Tel.: +55 (0)11 3675-2600 Penny Wilby (Reino Unido e Irlanda) pwilby@linux-magazine.com Amy Phalen (Amrica do Norte) aphalen@linuxpromagazine.com Hubert Wiest (Outros pases) hwiest@linuxnewmedia.de Diretor de operaes Claudio Bazzoli cbazzoli@linuxmagazine.com.br Na Internet: www.linuxmagazine.com.br Brasil www.linux-magazin.de Alemanha www.linux-magazine.com Portal Mundial www.linuxmagazine.com.au Austrlia www.linux-magazine.es Espanha www.linux-magazine.pl Polnia www.linux-magazine.co.uk Reino Unido www.linuxpromagazine.com Amrica do Norte Apesar de todos os cuidados possveis terem sido tomados durante a produo desta revista, a editora no responsvel por eventuais imprecises nela contidas ou por consequncias que advenham de seu uso. A utilizao de qualquer material da revista ocorre por conta e risco do leitor. Nenhum material pode ser reproduzido em qualquer meio, em parte ou no todo, sem permisso expressa da editora. Assume-se que qualquer correspondncia recebida, tal como cartas, emails, faxes, fotograas, artigos e desenhos, sejam fornecidos para publicao ou licenciamento a terceiros de forma mundial no-exclusiva pela Linux New Media do Brasil, a menos que explicitamente indicado. Linux uma marca registrada de Linus Torvalds. Linux Magazine publicada mensalmente por: Linux New Media do Brasil Editora Ltda. Rua So Bento, 500 Conj. 802 S 01010-001 So Paulo SP Brasil Tel.: +55 (0)11 3675-2600 Direitos Autorais e Marcas Registradas 2004 - 2011: Linux New Media do Brasil Editora Ltda. Impresso e Acabamento: RR Donnelley Distribuda em todo o pas pela Dinap S.A., Distribuidora Nacional de Publicaes, So Paulo. Atendimento Assinante www.linuxnewmedia.com.br/atendimento So Paulo: +55 (0)11 3675-2600 Rio de Janeiro: +55 (0)21 3512 0888 Belo Horizonte: +55 (0)31 3516 1280 ISSN 1806-9428 Impresso no Brasil

Estatstica e experincia
Todo mundo se escandalizou recentemente com a invaso dos servidores que hospedam o ambiente de desenvolvimento do Linux. A invaso ocorreu e passou desapercebida por 17 dias, tempo durante o qual as senhas dos desenvolvedores foram registradas atravs do uso de um cliente SSH modificado pelos invasores, instalado nas mquinas comprometidas. O cdigo do Linux propriamente dito teria permanecido intacto, uma vez que h um sistema que verifica a integridade de cada um dos cerca de 40.000 arquivos do cdigo-fonte armazenados nos servidores, e seria impossvel realizar qualquer alterao em qualquer um desses arquivos sem que um alarme tivesse disparado. Esse sistema verifica a integridade dos arquivos e est distribudo nas mquinas dos mais de mil desenvolvedores ativos na programao do kernel. Ironia do destino, tudo isso ocorreu praticamente poca do lanamento da verso 3.0 do Linux e da comemorao dos 20 anos do seu desenvolvimento. Como se no bastasse, cerca de uma semana aps a intruso nos servidores do kernel, os servidores que hospedam a presena na Internet da Linux Foundation, casa-mter do projeto, tambm foram invadidos. Em ambos os casos, os ataques ocorreram usando uma alterao de um rootkit conhecido pelo codinome Phalanx. Um rootkit um programa com cdigo mal intencionado que explora falhas de segurana para obter privilgios administrativos em um sistema operacional e que busca se esconder de softwares de segurana utilizando tcnicas avanadas de programao. Apesar de imaginar que os servidores comprometidos fossem um alvo de ataques apetitoso, ningum esperava realmente que isso ocorresse. Alis, normalmente ningum realmente espera que isso acontea, at que acontece pela primeira vez. Ficamos todos olhando com cara de paisagem e perguntando por que essa ou aquela providncia extra, que anteriormente soava altamente complexa e desconfortvel os pases de lngua inglesa usam um termo interessante para isso: cumbersome (basta olhar para a origem da palavra para desconfiar do que se trata) no foi tomada. Afinal, h vrios sistemas de preveno de ataques e de monitoramento disponveis. Esse momento de conscientizao do problema crucial. quando deixamos de verificar estatsticas frias e distantes e passamos a viver uma experincia. Quando ocorre conosco, deixa de ser estatstica e passa a ser experincia. um momento que deve ser aceito com humildade, o mximo de transparncia e cabea fria. Como no ocorreu nada de mais grave por conta do ataque, tambm um momento de rescaldo e de melhoria da infraestrutura de segurana dos servidores que hospedam o sistema do pinguim, que j se tornou efetivamente a base tecnolgica da computao em nuvem e da computao mvel. Demos sorte desta vez! No poder haver uma segunda. Espero que todas as medidas estejam sendo tomadas pela equipe de segurana da Linux Foundation nesse sentido. Caso contrrio, no teremos aprendido nada a partir da experincia. E continuaremos a ser estatstica...
Rafael Peregrino da Silva Diretor de Redao

EDITORIAL
3

Linux Magazine #83 | Outubro de 2011

NDICE

CAPA
if $verso == 3.0 or $tempo >= 20... O tempo implacvel e passa igual para todos. Nesses 20 anos, muitos programas surgiram e muitos outros desapareceram. Comemoremos, pois o nosso kernel favorito est mais jovem do que nunca! 31

Por dentro do kernel Como so as entranhas do kernel Linux 3.0? Analisamos algumas das melhorias desde a verso 2.6.0 para que voc aproveite os principais recursos e entenda porque a arquitetura do Linux torna um sistema operacional o estado da arte.

32

Linus Torvalds e o Linux 3.0 Em junho deste ano, o desenvolvedor do kernel Greg KroahHartman sentou com Linus Torvalds para uma conversa aberta ao pblico na LinuxCon Japo sobre os 20 anos do Linux, a condio atual do kernel e seu futuro.

38

www.linuxmagazine.com.br

Linux Magazine 83 | NDICE

COLUNAS
Klaus Knopper Charly Khnast Zack Brown Augusto Campos Kurt Seifried Alexandre Borges 08 10 12 14 16 18

SEGURANA
Mistura de cdigos 72

NOTCIAS
Geral Abertas as incries para a LinuxCon 2011 Bada poder ter seu cdigo aberto 20 A mistura de linguagens de programao no deve restringir seu projeto de software. Aprenda a expor objetos e templates C++ ao cdigo PHP e como registrar chamadas PHP que o cdigo C++ possa utilizar.

CORPORATE
Notcias Novos membros ingressam na Aliana para Virtualizao Aberta Ameaas sobre dbias patentes Google compra mais patentes da IBM Entrevista: Christian Cussen A onda das redes sociais parece no ter volta. Marketeiros de todo o mundo quebram a cabea diariamente tentando imaginar como tirar proveito das redes sociais ao tornar suas marcas mais prximas dos clientes. O Ning a ferramenta web que pode ajud-los nisso. Coluna: Jon maddog Hall Coluna: Alexandre Santos 26 22

ANLISE
Motorola Xoom 42

28 30 Conhea as chances de o popular tablet Xoom, da Motorola, tornar-se um matador de iPads. 68 Troque a rota A virtualizao com VMware, KVM e Xen chegou para car, mas at agora nenhum switch virtual dava suporte cenrios complexos. O Open vSwitch suporta uxos de dados, VLANs, entroncamento e a agregao de portas exatamente como os principais switches do mercado. Anlise detalhada O projeto OpenVAS acaba de lanar a verso 4 de seu sistema de avaliao de vulnerabilidades razo suciente para vericar os novos recursos e aprender, na prtica, como criar sua prpria soluo de checagem para seus sistemas. 52 48

TUTORIAL
Economia de energia

Muitos aplicativos interrompem o processador quando ele tenta dormir. O PowerTOP no s identica estes maus elementos como tambm fornece dicas para voc se livrar deles. Ganhe agilidade! 72

REDES
Atualizao disfuncional Atualizaes de rotina em uma distribuio Linux podem causar alguma dor de cabea; temos algumas dicas prticas para ajudar na restaurao. 65

Executar um conjunto de comandos em um grande nmero de sistemas um problema clssico de administrao. O Func d aos administradores uma alternativa til para loops e conexes SSH. O m est prximo No dia a dia, podemos ver o espao livre disponvel em disco encolhendo cada vez mais. A ferramenta JDiskReport rapidamente identica quem est consumindo mais espao. 75

SERVIOS
Editorial Emails Linux.local Preview 03 06 78 82

Linux Magazine #83 | Outubro de 2011

Coluna do Augusto

Obrigado, Michael S. Hart


O ms de setembro marcou o abrupto m da frutfera vida de Michael S. Hart. Conhea quem foi e o que fez este cone da tecnologia dos anos 70.

COLUNA

ms de setembro marcou o abrupto fim da frutfera vida de Michael S. Hart, que ainda no incio da dcada de 1970 introduziu o conceito de ebook, mas cujo legado para a liberdade do conhecimento pode ser melhor observado por meio de seu Projeto Gutenberg. Iniciado em 1971, o projeto Gutenberg [1] um esforo coletivo de voluntrios para oferecer para download o texto integral de livros para download na Internet, sem custo e na maioria dos casos tambm oferecendo aos leitores plena liberdade de copiar, redistribuir ou mesmo modificar (por exemplo, em tradues, ou adaptaes para o teatro) as obras e isso desde bem antes de comearmos a falar em software livre. Hoje o acervo do projeto Gutenberg de dezenas de milhares de obras, todas elas disponveis em uma variedade de formatos: do bsico TXT a formatos ricos como HTML, PDF e ePub, alm de arquivos prontos para a incluso em boa parte dos leitores de ebooks e tablets do mercado. O projeto comeou com a publicao de clssicos como os de Homero e Shakespeare, mas hoje estes livros esto organizados em temas variados: agricultura, educao, sade, histria, infantil, romance etc. Entre os mais populares no incio de setembro esto o

O projeto Gutenberg um esforo coletivo de voluntrios para oferecer para download o texto integral de livros na Internet, sem custo.
14

indiano Kama Sutra, um dos livros da saga original de Sherlock Holmes, A Arte da Guerra, O Prncipe (de Maquiavel) e vrios outros. A disponibilizao destes textos resultado do esforo de voluntrios e nasceu do exemplo do prprio Michael S. Hart, que entre 1971 e 1987 digitou pessoalmente o texto de 313 livros. At 1989 todos os textos eram resultado de digitao, mas a partir da os scanners e a tecnologia de reconhecimento tico de caracteres passou a ter um papel mais relevante no projeto. A sua meta inicial era oferecer gratuitamente ou a custo baixo, at o fim do sculo XX, o texto dos 10.000 livros mais consultados e se baseava, no que era uma expectativa na poca, de que um dia os computadores seriam acessveis ao pblico em geral. Hoje a meta mais ampla: encorajar a criao e distribuio de ebooks. Hoje o acervo do projeto Gutenberg cresce a uma velocidade de cerca de 50 obras por semana, principalmente com ttulos da literatura ocidental, mas com variaes que incluem at mesmo livros de receitas e obras de referncia. H pelo menos 20 anos sou leitor frequente dos livros do projeto Gutenberg e seus afiliados. Recomendo que voc faa o mesmo, e tambm que contribua se puder. Obrigado, Michael S. Hart, por ter semeado o compartilhamento de tanto conhecimento. Sua partida foi prematura, mas sua presena continuar pelo fruto do seu trabalho e pela lembrana do seu ideal. Descanse em paz.

Mais informaes
[1] Projeto Gutenberg: http://www.gutenberg.org/
Augusto Csar Campos administrador de TI e, desde 1996, mantm o site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo.

www.linuxmagazine.com.br

Matria | SEO

20 anos de Linux

if $verso == 3.0 or $tempo >= 20...


O tempo implacvel e passa igual para todos. Nesses 20 anos, muitos programas surgiram e muitos outros desapareceram. Comemoremos, pois o nosso kernel favorito est mais jovem do que nunca! por Kemel Zaidan

SEO

tempo de comemorar! Afinal, no todo dia que o kernel Linux faz 20 anos. Juntamente com seu aniversrio, uma nova verso do programa entrou em cena, a verso 3.0; sem nenhuma novidade especial, disse Linus, durante o anncio de lanamento. Mas no se engane, 20 anos de Linux uma conquista e tanto. Muitos acharam que no veriam esse dia chegar. Alguns deles por pensar que a verso 2.6 fosse tender ao infinito e uns poucos (privilegiados) por conhecerem o programa a tanto tempo, que um dia como esse no passava de uma possibilidade longnqua demais para ser levada em conta. Em 1994, na ocasio do lanamento do Linux 1.0, Torvalds disse que o prximo passo seria a dominao global completa. Na poca, a frase no passava de uma piada, uma vez que o lanamento marcou o suporte a rede de dados por parte do kernel (apenas trs anos aps o surgimento de sua verso inicial, diga-se de passagem). Dezessete anos depois, a afirmao no parece assim to absurda, afinal o Linux est em praticamente toda parte: nos celulares, nos roteadores, nas TVs de nova gerao, nos video games, nos semforos inteligentes, nas cmeras de segurana e at mesmo em geladeiras [1]. Nesse ponto que o leitor ter prazer de ler o artigo Por dentro do kernel, de Eva-Katharina Kunst e Jrgen Quade, que relatam os principais avanos da verso 2.6.0 at a atual 3.0, em uma verdadeira aula de sistemas operacionais. Aps sua leitura, possvel ter uma boa compreeno do funcionamento bsico de um kernel Linux e as razes que fazem dele um dos sistemas mais avanados do mundo, superando outros concorrente. Como relata Linus durante a entrevista que concedeu a Greg Kroah-Hartman (outro desenvolvedor do kernel) durante a LinuxCon Japo e que voc poder conferir nas pginas da Linux Magazine deste ms o sucesso do Linux se d por conta da persistncia e trabalho duro de pessoas que ficam firmes em um projeto e fazem isso todo dia. O surgimento do Linux tornou o sonho de um sistema operacional 100% livre mais prximo da realidade e representou um largo passo nesse sentido. Durante

os 20 anos que se passaram ele foi amadurecendo e ganhando adeptos medida que ia evoluindo. Hoje, podemos usufruir de um kernel que no deve nada a nenhum outro sistema operacional proprietrio. Pode ser que tudo isso seja alcanado atravs de trabalho duro e suor, mas no deixa de ser excitante. Portanto, vista o chapeuzinho de cone, pegue a lngua de sogra e divirta-se com as prximas pginas da Linux Magazine. pique! pique! pique, pique, pique...

Mais informaes
[1] Eletrolux i-Kitchen: http://www2.electrolux. com.br/ikitchen_ra/index.html

Matrias de capa
Por dentro do kernel Entrevista com Linus Torvalds 32 38

Linux Magazine #XX | Ms de 200X

3 31

ANLISE | Chaveamento virtual com Open vSwitch

Chaveamento virtual com Open vSwitch

ANLISE

Troque a rota
A virtualizao com VMware, KVM e Xen chegou para car, mas at agora nenhum switch virtual dava suporte cenrios complexos. O Open vSwitch suporta uxos de dados, VLANs, entroncamento e a agregao de portas exatamente como os principais switches do mercado. por Ralf Spenneberg

uitas empresas esto movendo sua infraestrutura para sistemas virtuais. Este processo envolve a virtualizao de componentes centralizados: sistemas SAP, servidores de bases de dados Oracle e servidores de arquivos, facilitando assim, a sua administrao. Alm disso, os administradores no precisam mais desligar sistemas para a manuteno, j que as cargas de trabalho podem ser migradas, em execuo, para outras mquinas virtuais. Uma grande desvantagem de um ambiente virtual sempre tem sido a estrutura simplstica de rede. Mesmo que os switches fsicos de rede suportem VLANs, entroncamentos (trunking), QoS (Quality of Service Qualidade de Servio), agregao de portas, recursos de firewall dentre outras, os switches virtuais so bastante primrios. A VMware e a Cisco, entretanto, criaram uma

soluo no switch virtual Cisco Nexus 1000V. Este switch integra-se ao ambiente VMware e oferece recursos avanados. Uma opo de cdigo aberto deste calibre no estava previamente disponvel, mas o Open vSwitch acabou com este problema. O Open vSwitch suporta Xen, KVM e VirtualBox, assim como o XenServer. A prxima gerao do Citrix tambm migrar para o Open vSwitch. O Open vSwitch [1] est baseado no projeto OpenFlow da Universidade de Stanford [2] e um novo padro aberto concebido para suportar a gesto de switches e roteadores com software arbitrrio (quadro 1). O Open vSwitch d ao administrador os seguintes recursos em um sistema Linux: Chaveamento completamente funcional em Camada 2; Suporte a NetFlow, sFlow, SPAN e RSPAN;

VLANs 802.1Q sem trunking; QoS; Agregao de portas; Tunelamento GRE; Compatibilidade com o Linux

bridge code (brctl); Implementao do switch em espao de usurio e de kernel. Mas antes que voc possa beneficiar-se destes recursos, necessrio que voc instale o Open vSwitch. Pacotes prontos existem para o Debian Sid ( unstable ). Voc pode baixar os pacotes para o Fedora/RedHat a partir de meu prprio website [3]. Tambm pode instalar o pacote a partir do cdigo fonte (quadro 2). Ainda que os pacotes forneam scripts de inicializao para um uso simplificado, voc precisar executar manualmente, ou criar seu prprio script de inicializao, no caso de uma instalao manual. A base de dados de configurao lida com a

48

www.linuxmagazine.com.br

Chaveamento virtual com Open vSwitch | ANLISE

gesto do switch (listagem 1). O prximo passo executar o servio Open vSwitch:
ovs-vswitchd unix:/usr/local/var/ run/openvswitch/db.sock

Voc pode, agora, executar o comando ovs-vsctl para criar novos switches ou adicionar e configurar portas. Uma vez que muitos scripts para o Xen e o KVM valem-se dos utilitrios de bridge (ponte entre dois segmentos de rede), voc precisar iniciar o servio de compatibilidade de bridge (com o comando brctl). Para fazer isto, carregue o mdulo do kernel e ento, inicie o servio:
modprobe datapath/linux-2.6/ brcompat_mod.ko ovs-brcompatd --pidfile --detach -vANY:console:EMER unix:/usr/ local/var/run/openvswitch/db.sock

Figura 1 Ntop mostrando os uxos para a bridge.

NetFlow
O Open vSwitch pode exportar os fluxos de rede (NetFlows) dentro do switch. Para permitir isso, crie uma nova probe (sonda) NetFlow.
# ovs-vsctl create netflow target= "192.168.0.5\:5000" 75545802-675f-45b2814e-0875921e7ede

Agora, conecte a probe com o bridge extern0:


# ovs-vsctl add bridge extern0 netflow 75545802-675f-45b2814e-0875921e7ede

Caso voc j tenha, previamente, executado um coletor de fluxos de rede (Ntop por exemplo) na porta

Agora voc pode usar os utilitrios de bridge para gerenciar seu Open vSwitch:
brctl addbr extern0 brctl addif extern0 eth0

Quadro 1: OpenFlow
O objetivo do projeto OpenFlow revolucionar o mundo dos roteadores e switches. Um roteador ou switch clssico combina duas funes em um nico dispositivo Encaminhamento rpido de pacotes (rota de dados) Tomada de deciso sobre a forma e o local para onde encaminhar os pacotes (controle de rota) Estes dois sistemas, tipicamente, trabalham de maneira independente dentro do mesmo dispositivo. O componente de rota de dados apenas pergunta algo ao componente do controle de rota caso ele no saiba como e para onde deve encaminhar um pacote. O componente do controle de rota determina, ento, a rota e a armazena em uma tabela de uxos. Todos os outros pacotes do mesmo uxo podem, ento, ser rapidamente encaminhados pelo mecanismo de rota de dados. O OpenFlow alivia a carga do controle de rota para um controlador parte, que pode ser um simples servidor. O switch OpenFlow (rota de dados) e o controlador comunicam-se atravs de um canal seguro. O switch OpenFlow armazena a tabela de uxo onde o controlador salva os uxos individuais. Cada uxo descreve as propriedades dos pacotes que compem o uxo e como o switch deve tratar estes pacotes (descartar, porta de envio etc.). Uma vez que o switch recebe um pacote para o qual ele no tem uma entrada correspondente na tabela, envia o pacote ao controlador, que analisa o pacote, toma uma deciso e armazena esta deciso na tabela de uxo. Graas cooperao de muitos fabricantes, os desenvolvedores conseguiram que o OpenFlow seja suportado em muitos dispositivos comerciais de rede. H um rmware customizado para muitos switches da HP, NEC, Toroki e Pronto [4]. O Open vSwitch uma implementao de software que fornece ambos recursos (rota de dados e controlador).

A distribuio de scripts para a criao de bridges funcionar normalmente. Voc pode tambm usar o comando ovs-vsctl para gerenciar o bridge. De fato, voc pode usar os dois comandos ao mesmo tempo (listagem 2). Se o comando brctl show no pode encontrar alguns arquivos no diretrio /sys/, os utilitrios de bridge podem ser novos demais (por exemplo, no RHEL 6) e voc talvez tenha que voltar verso anterior, o RHEL 5. At o momento, o Open vSwitch funcionou exatamente como em um cenrio de bridge com o uso de utilitrios para este fim. Outras etapas de configurao so necessrias para o uso de funes avanadas. Todos os parmetros da base de dados de configurao do Open vSwitch podem ser manipulados com o uso do comando ovs-vsctl.

Linux Magazine #83 | Outubro de 2011

49

ANLISE | Chaveamento virtual com Open vSwitch

Listagem 1: Congurao
01 ovsdb-server /usr/local/etc/ovs-vswitchd.conf.db \ 02 --remote=punix:/usr/local/var/run/openvswitch/db.sock \ 03 --remote=db:Open_vSwitch,managers \ 04 --private-key=db:SSL,private_key \ 05 --certificate=db:SSL,certificate \ 06 --bootstrap-ca-cert=db:SSL,ca_cert

5000 da mquina com o endereo 192.168.0.5, agora poder visualizar o arquivo (figura 1). Os parmetros de configurao podem ser gerenciados com o uso dos comandos ovs-vsctl list bridge e ovs-vsctl list netflow e removidos com ovs-vsctl destroy.

Listagem 2: Gesto da bridge


01 02 03 04 05 06 07 [root@kvm1~]# brctl show bridge name bridge id STP enabled interfaces extern0 0000.00304879668c no eth0 vnet0 [root@kvm1~]# ovs-vsctl list-ports extern0 eth0 vnet0

QoS
Em muitos casos os administradores precisam restringir a largura de banda para usurios virtuais individuais, particularmente quando clientes diversos usam o mesmo ambiente virtual. Usurios diferentes recebem o desempenho pelo qual pagam com base em Contratos de Nvel de Servio (SLA). O Open vSwitch d aos administradores uma opo bastante simples para restringir o desempenho mximo de transmisso de dados para usurios individuais. Para testar isto, voc deve primeiro medir o trfego normal. A ferramenta iperf til para este fim. Voc pode executar o iperf como servidor em um sistema e como cliente em um usurio virtual (listagem 3). Voc pode, agora, restringir o desempenho do envio. Observe que o comando espera que voc digite o desempenho do envio em kilobits por segundo (kbps). Alm do desempenho de envio, voc precisa especificar a velocidade de rajada (burst speed), que deve ser cerca de um dcimo do desempenho de envio. A interface vnet0, neste caso, a porta do switch na qual o convidado virtual est conectado.
# ovs-vsctl set Interface vnet0 ingress_policing_rate=1000 # ovs-vsctl set Interface vnet0 ingress_policing_burst=100

Listagem 3: Medidas de desempenho


01 02 03 04 05 06 07 08 09 ## Server: ## iperf -s ## Client: # iperf -c 192.168.0.5 -t 60 -------------------------------------------------------Client connecting to 192.168.0.5, TCP port 5001 TCP window size: 16.0 KByte (default) -------------------------------------------------------[ 3] local 192.168.0.210 port 60654 connected with 192.168.0.5 port 5001 10 [ID] Interval Transfer Bandwidth 11 [ 3] 0.0-60.0 sec 5.80 GBytes 830 Mbits/sec

Quadro 2: Instalao
Depois de descompactar o cdigo fonte, voc precisar compilar e instalar o Open vSwitch usando os comandos usuais: ./configure --with-l26=/lib/modules/$(uname -r)/build make sudo make install Voc precisar dos kernel headers (cabealhos de kernel) para compilar o mdulo do kernel. Em distribuies recentes voc encontrar, tipicamente, os cabealhos de kernel em um pacote chamado kernel-devel ou algo similar. Depois de compilar, voc deve vericar a instalao e executar o programa pela primeira vez. Para fazer isso carregue manualmente o mdulo do kernel. modprobe datapath/linux-2.6/ openvswitch_mod.ko Caso este comando falhe, voc provavelmente precisar descarregar o mdulo bridge: rmmod bridge. A verso do mdulo para o kernel pode no corresponder a seu kernel atual, o que pode ser um problema caso voc use pacotes prontos. Neste caso, ser necessrio recompilar o mdulo. Aps fazer isto voc pode inicializar a base de dados de congurao do Open vSwitch: ovsdb-tool create /usr/local/etc/ovs-vswitchd.conf.db vswitchd/vswitch.ovsschema Em caso de problemas, o arquivo INSTALL.Linux fornece dicas para a sua soluo.

Voc pode testar os resultados com iperf (gura 2). Caso voc tenha familiaridade com o comando tc e o QoS baseado em classes no Linux, com vrias disciplinas de enfileiramento

50

www.linuxmagazine.com.br

Chaveamento virtual com Open vSwitch | ANLISE

(queuing), voc pode usar esta ferramenta em conjunto com o Open vSwitch. A pgina de man fornece vrios exemplos.

Espelhamento
Para executar um sistema de deteco de intruso voc precisa de uma porta espelhada no switch. Mais uma vez, o Open vSwitch oferece esta opo. Para us-la voc necessita, inicialmente, criar a porta espelhada e ento adicion-la ao switch correto. Para criar uma porta espelhada que recebe o trfego de todas as outras portas e as espelhe na vnet0, use o seguinte comando:
ovs-vsctl create mirror name=mirror select_all=1 output_port= e46e7d4a-2316407f- ab11-4d248cd8fa94

Figura 2 Uso do iperf para verificar as restries de desempenho


de transmisso.

O comando:
ovs-vsctl list port vnet0

ge falsa como soluo alternativa. O Open vSwitch suporta bridges falsas com as quais voc pode, designar VLANs. Cada porta em uma bridge falsa passa a ser uma porta de acesso na VLAN. Para implementar isto voc deve, primeiramente, criar uma bridge falsa como filha de uma bridge me:
# ovs-vsctl add-br VLAN1 extern0 1

revela o ID da porta de sada que voc precisa. O comando:


# ovs-vsctl add bridge extern0 mirrors 716462a4-8aac-4b9caa20-a0844d86f9ef

adiciona a porta espelhada ao bridge.

A nova bridge falsa responde, agora, pelo nome de VLAN1 e transporta a VLAN com a identificao 1. Voc precisa habilit-la e dar-lhe um endereo IP:
# ifconfig VLAN1 192.168.1.1 up

bine mltiplas portas fsicas em uma nica porta lgica que pode ento ser usada para balanceamento de carga e alta disponibilidade. O Open vSwitch um projeto interessante que est, atualmente, prejudicado pela falta de popularidade e documentao. Espero que as grandes distribuies decidam incorporar o projeto e integr-lo nativamente em suas prprias ferramentas, como a Libvirt. Este recurso removeria a necessidade de usar o servio de compatibilidade de bridge.

Mais informaes
[1] Open vSwitch: http:// www.openvswitch.org/ [2] OpenFlow: http:// www.openflow.org/ [3] Open vSwitch RPM: http://www.spenneberg. org/Openvswitch/ [4] OpenFlow switches: http:// openflow.foswiki/bin/ view/org/bin/OpenFlow/ Deployment/Components

VLANs
Voc tambm pode implementar VLANs com o Open vSwitch e tem duas opes para faz-lo. Cada Open vSwitch tem a capacidade de implementar VLAN: se voc adicionar uma porta ao switch virtual, ela j uma porta de entroncamento VLAN que fornece o transporte identificado (tagged) para todas as VLANs. Para criar uma porta de acesso que tenha suporte nativo a VLAN, sem identificao, digite:
ovs-vsctl add-port extern0 vnet1 tag=1

O comando brctl no permite que voc crie, diretamente, este tipo de porta. Voc precisar de uma brid-

Cada porta que voc criar nesta bridge uma porta de acesso para a VLAN 1, o que significa que voc pode, novamente usar o comando brctl. O Open vSwitch pode tambm criar um tnel GRE entre mltiplos sistemas e executar um entroncamento VLAN entre eles. Desta forma voc pode mover mquinas virtuais para outros hosts fora da LAN. A comunicao se d atravs do tnel GRE. O Open vSwitch tambm agrega portas. Os desenvolvedores do kernel Linux chamam isto de bundling; j a Cisco chama isto de EtherChannel. Esta agregao permite que o administrador com-

Gostou do artigo? igo?


Queremos ouvir sua opinio. Fale conosco em m cartas@linuxmagazine.com.br zine.com r Este artigo no nosso site: osso s : http://lnm.com.br/article/5875 r/artic 587

Linux Magazine #83 | Outubro de 2011

51

ANLISE | Anlise de vulnerabilidades com OpenVAS

ANLISE

OpenVAS 4

Anlise detalhada
O projeto OpenVAS acaba de lanar a verso 4 de seu sistema de avaliao de vulnerabilidades razo suciente para vericar os novos recursos e aprender, na prtica, como criar sua prpria soluo de checagem para seus sistemas. por Stefan Schwarzer

OpenVAS um sistema de cdigo aberto para a avaliao de vulnerabilidades, distribudo sob a licena GPL. Ele um ambiente completo de avaliao de segurana, com uma srie de servios e componentes que podem ser organizados em diversas formas para construir um ambiente de avaliao adequado sua rede. O OpenVAS Manager age como um servio

central para o controle do ambiente OpenVAS, comunicando-se com os componentes responsveis pela varredura atravs do protocolo OMP (OpenVAS Management Protocol Protocolo de Gesto do OpenVAS) baseado em XML e armazenando os resultados em uma conveniente base de dados do tipo SQLite. O OpenVAS[1] est passando, atualmente, por rpidas mudanas e

acaba de atingir a verso 4. Neste artigo apresentarei o sistema de varredura e uma viso do sistema de clientes e suas vulnerabilidades. Voc tambm receber algumas dicas para a implementao do OpenVAS e sobre como escrever seus prprios plugins.

Novos recursos
O ambiente OpenVAS mudou consideravelmente desde a sua verso 3, mas continua compatvel com as ferramentas e protocolos conhecidos da verso 2. Alm do novo OMP, que auxilia na gesto dos processos de varredura, o OpenVAS Administration Protocol (OAP, Protocolo de Administrao do OpenVAS) foi adicionado para administrar clientes e novos servios. O OpenVAS Manager cuida da comunicao dentro do ambiente e armazena todos os dados de varredura em sua base de dados interna SQLite, aliviando parte da carga dos novos clientes baseados em OMP e auxiliando na organizao de acessos

Figura 1 O Desktop Greenbone Security baseado no Qt.

52

www.linuxmagazine.com.br

Anlise de vulnerabilidades com OpenVAS | ANLISE

simultneos aos dados de varredura armazenados. A comunicao com o servio responsvel pela varredura (o scanner openvassd) ainda usa o OpenVAS Transfer Protocol (OTP, Protocolo de Transferncia OpenVAS). O servio OpenVAS Administrator fornece aos administradores uma abordagem conveniente gesto de usurios e certificados. Novos clientes de varredura esto agora disponveis, em adio ao anteriormente usado OpenVAS Client, baseado em Gtk. Um servidor, chamado Greenbone Security Assistant (GSA) [2] executado em um navegador. O aplicativo desktop, Greenbone Security Desktop (GSD, gura 1) [3], que executado em Windows (graas ao Qt), ou a ferramenta simples para linha de comando omp completam a seleo de ofertas livres. Os clientes desktop, que eram incompletos na verso 3, hoje cobrem o escopo completo de funes do OpenVAS. Em um ambiente de produo, o cliente clssico OpenVAS ainda o mais fcil e rpido. Os pontos fortes so a organizao hierrquica dos clientes e sua habilidade de organizar alvos de varredura em Alvos (Targets) e Escopos (Scopes). Aps definir as propriedades padro para a varredura, voc pode atribuir as propriedades de um alvo para um escopo e, a partir da, modific-las conforme o necessrio. Este recurso facilita a modelagem e a realizao rpida de novas varreduras e ajuda muito na seleo entre alvos de varredura e seus resultados. A definio de uma varredura em clientes web ou desktop , comparativamente, confusa. O processo comea com as definies individualizadas de configuraes de varredura, credenciais, alvos de varredura e tarefas. A promessa de permitir mdulos reutilizveis acaba tornando-se uma armadilha quando h a necessidade posterior de modificar a configurao. Por exemplo, voc no pode,

Figura 2 Conguraes globais importantes no cliente OpenVAS.

retrospectivamente, modificar ou substituir os alvos em suas tarefas de varredura isto significa que voc deve criar novas entradas em sua configurao, o que pode ser bastante desagradvel ao longo do tempo. Novos clientes no suportam, atualmente, o uso de listas baseadas em arquivos para a definio de alvos de varredura. Em outras palavras, caso voc necessite analisar centenas de mquinas virtuais para descobrir as vulnerabilidades de um servidor web, ir apreciar o cliente clssico que apenas precisa de uma lista de hosts em um arquivo texto.

O comeo
Antes de voc comear a usar o sistema de avaliao de vulnerabilidades, dedique um tempo para conhecer os formatos de dados do OpenVAS e limpar os espaos de memria para garantir que voc possui a configurao correta para as suas preferncias mais importantes. Isto tambm ajuda a evitar erros durante o armazenamento de informaes confidenciais. Caso esteja trabalhando com o cliente clssico OpenVAS e eu assumo que voc est a estrutura hierrquica dos alvos de varredura ser de grande ajuda, j que voc

Figura 3 Preferncias para os plugins individuais.

Linux Magazine #83 | Outubro de 2011

53

ANLISE | Anlise de vulnerabilidades com OpenVAS

Figura 4 Relatrios de varredura.

pode aplicar algumas de suas preferncias para outros alvos. possvel tomar vantagem de seu conhecimento para modificar a hierarquia de alvos de varredura de forma retrospectiva para fazer isto, simplesmente mova os arquivos no sistema de arquivos. O arquivo .openvasrc par-

ticularmente interessante para cada alvo, j que todas as configuraes da varredura esto nele, incluindo as opes que no podem ser configuradas nos clientes. Por exemplo, log_whole_attack = no desabilita totalmente o registro de varreduras no servidor central de varredura. As guras 2 e 3 mostram as preferncias globais que voc deve verificar antes da varredura. Por exemplo, se voc est testando servidores web virtuais, voc deve habilitar a resoluo reversa de endereo (reverse lookup) para evitar receber todos os resultados agrupados sob um nico endereo IP compartilhado. Inicialmente, a opo Safe checks bastante desejvel, j que as varreduras de DoD no podem estar entre os primeiros

Listagem 1: Compilando e Executando o OpenVAS


01 02 03 04 make depend make make initial make start # # # # instala os pacotes exigidos compila e instala o OpenVAS cria certificados, base de dados, etc. inicia os processos necessrios em background

Listagem 2: Uma modicao (override) severa


01 <severity_override name="IT Grundschutz M5.064:Secure Shell" 02 host="192.168.178.46" 03 port="general/IT Grundshutz" 04 OID="1.3.6.1.4.1.25623.1.0.895064" 05 severity_from="Security Hole" 06 severity_to="False Positive" 07 active="true"> 08 <reason> 09 Backport 10 </reason> 11 </severity_override> Arquivo ~/.openvas ~/.openvasrc Signicado Diretrio para os arquivos de congurao dos alvos de varredura. Parmetros globais de congurao. Todas as conguraes (.openvasrc ) para este alvo de varredura e os resultados da mesma (Report_date). Na primeira vez em que voc cria um novo alvo de varredura, o OpenVAS copia a congurao do escopo (Scope) para o alvo (Target). O arquivo XML com as modicaes que inuenciam os resultados da varredura quando avaliando seu efeito.

testes realizados. Infelizmente, esta opo est desabilitada como padro. Voc tambm pode desejar reduzir o nmero de mquinas analisadas em paralelo e o nmero de testes a serem completados para evitar cargas desnecessrias na rede e nas mquinas alvo. Ao coordenar suas atividades com as do administrador de rede voc deve certificar-se de que nenhum firewall ou sistema de deteco de invaso bloqueie suas varreduras e produza resultados inteis. Inicialmente, ao menos a varredura OpenVAS TCP uma boa escolha. Quando utilizar o Nmap para varrer as portas voc deve verificar as configuraes necessrias logo de incio, usando o Nmap em um processo parte e ento aplicando os resultados. Os plugins definem a interface cliente OpenVAS e so configurados em Prefs na aba Options. uma boa ideia verific-los depois de carregar ou atualizar os plugins. Por exemplo, voc pode habilitar checagens bastante informativas em sincronia o Departamento Federal Alemo para Segurana da Informao (BSI IT-Grundschutz, o escritrio de segurana online da Alemanha) [4] como testes de conformidade (Compliance Tests gura 3). Este conveniente recurso de configurao de plugin pode ser aproveitada em seu prprio desenvolvimento de plugins.

Acerte o Alvo
A escolha bvia de um alvo inicial (Target selection), logo aps a instalao do cliente ou servidor o prprio localhost, o mesmo servidor onde o OpenVAS foi instalado. A configurao da mquina conhecida e voc pode facilmente verificar suas vulnerabilidades e repetir os testes. Caso o cliente e o servidor sejam executados em mquinas diferentes, voc sempre poder escolher seu prprio sistema cliente como o alvo inicial. Voc deve levar em considerao a

~/.openvas/Scope/Target

~/.openvas/ severity_overrides.xml

Tabela 1 Localizao dos arquivos de congurao.

54

www.linuxmagazine.com.br

Anlise de vulnerabilidades com OpenVAS | ANLISE

rede que conecta as duas mquinas. Tambm faz sentido configurar sua prpria mquina virtual para testes uma vez que pode ter controle total sobre essa mquina (por exemplo, com o VirtualBox [5]), podendo facilmente modific-la e mantendo vrios estados como snapshots. Aps a seleo dos plugins existem mais de 21.000 atualmente voc pode executar a primeira varredura. Comece pela seleo de uma viso exterior completa do alvo da varredura; ou seja, no fornea nenhuma credencial de login para o sistema alvo j que esta seria a situao inicial ao confrontar um invasor. Dependendo das portas abertas e servios ativos, a varredura pode levar desde alguns minutos at vrias horas, mas voc pode interromper o processo a qualquer momento. Aps completar ou interromper a varredura voc ter um relatrio listando os detalhes com base nas portas ou servios para o seu alvo. Trs tipos de informaes so exibidas na aba Report do cliente OpenVAS (gura 4): Security Hole aponta as potenciais vulnerabilidades descobertas pela varredura; Security Note exibe informaes sobre a porta para a avaliao do sistema; Log Message contm a informao que retornada pelo plugin, o que pode ser, de fato, muito til. Comece verificando a informao geral em general/tcp, especialmente os parmetros agregados para a varredura, tais como configurao, durao e assim por diante.

Figura 5 Modicao de severidade para um falso positivo.

significativos se puderem ter acesso interno ao sistema alvo, o que requer um login. Sem isto os testes falham

e, infelizmente, retornam um estado que incrementa o contador de vulnerabilidades crticas de segurana.

Listagem 3: Fragmento do unibwm1.nasl


01 if(description) 02 { 03 script_id(9999001); 04 script_version("$Revision: 7732 $") 05 script_tag(name:"risk_factor", value:"None"); 06 script_name("UniBwM 1: Plaintext passwords"); 07 desc =" 08 Panorama : Esse script testa a existncia de senhas em texto puro para o subversion 09 Fator de risco : Nenhum"; 10 11 script_description(desc); 12 script_summary("Plaintext passwords"); 13 script_category(ACT_GATHER_INFO); 14 script_copyright("Copyright (C) 2010 Stefan Schwarz"); 15 script_family("General"); 16 script_dependencies("ssh_authorization.nasl"); 17 if(description) 18 { 19 script_id(9999001); 20 script_version("$Revision: 289 $"); 21 script_tag(name:"risk_factor", value:"None"); 22 script_name("UniBwM 1: Plaintext passwords"); 23 desc =" 24 Panorama : Esse script testa a existncia de senhas em texto puro para o subversion 25 Fator de risco : Nenhum"; 26 27 script_description(desc); 28 script_summary("Plaintext passwords"); 29 script_category(ACT_GATHER_INFO); 30 script_copyright("Copyright (C) 2010 Stefan Schwarz"); 31 script_family("General"); 32 script_dependencies("ssh_authorization.nasl", "gather-package-list.nasl"); 33 script_add_preference(name:"Launch this script", type:"checkbox", value:"yes"); 34 exit(0); 35 }

Vulnerabilidades
Mesmo que voc tenha aplicado as ltimas atualizaes, a primeira varredura tipicamente revela dezenas de vulnerabilidades crticas, principalmente causadas pelo uso incorreto de plugins de varredura que no so muito tolerantes a erros. Por exemplo, as varreduras IT-Grundschutz [4] apenas iro retornar resultados

Linux Magazine #83 | Outubro de 2011

55

ANLISE | Anlise de vulnerabilidades com OpenVAS

Figura 6 Propriedades do plugin


cliente OpenVAS.

Em outras palavras, voc precisar desabilitar estes plugins ou fornecer as credenciais necessrias antes de executar o prximo teste. Uma rpida olhada nas estatsticas pode, tipicamente, levar a falsas interpretaes, tal como a mensagem OpenVAS isnt (yet) set up for fully automated testing and evaluation (O OpenVas no est ainda configurado para testes e avaliaes automticas).

Falsos positivos
Outro problema frequente que os plugins tendero a identificar o que eles pensam que so nmeros obsoletos de verses, tipicamente em sistemas com backports [6]. Consertos para vulnerabilidades descobertas em verses mais novas so, frequentemente, fornecidos tambm para sistemas antigos, mas ainda oficialmente suportados. Mas isto no quer dizer que um backport cuja vulnerabilidade foi resolvida ganhe um novo nmero de verso, o que confunde o OpenVAS. Uma varredura de segurana no verifica as vulnerabilidades, ela apenas busca por verses com vulnerabilidades conhecidas. O servidor Ubuntu 8.04 um exemplo disto: o OpenVAS classifica a verso do OpenSSH utilizada por ele como crtica, mas se

voc pesquisar por esta verso e as correes aplicadas a ela voc descobrir que ssh-2.0-openssh_4.7p1 debian-8ubuntu1.2 est atualizada e que todas as correes de segurana foram aplicadas [7]. Os plugins so facilmente enganados por pequenas diferenas como esta, tornando necessria a limpeza manual das mensagens. Para reduzir totalmente os falsos positivos voc pode mudar a opo Report paranoia dentro de Global variable settings de Normal para Avoid false alarms. Claro que isto apenas funciona para os plugins que aceitam esta opo e apenas 130 dentre os mais de 21.000 plugins esto entre os que fazem hoje. Dito isto, voc pode preferir evitar o grande risco de deixar passar uma vulnerabilidade real. Voc pode utilizar o mecanismo de modificao (override) de severidade para alterar a criticidade de uma vulnerabilidade identificada pelo OpenVAS, reclassificando a mensagem gerada pela varredura de Security Hole para False Positive. Estas modificaes ficam armazenadas globalmente no arquivo severity_overrides.xml (tabela 1), onde voc pode, ento, edit-las retrospectivamente (listagem 2 e gura 5) e aplic-las apropriadamente aos resultados de um relatrio. Estas modificaes (overrides) so, inicialmente, relativas mquina coberta pelo relatrio 192.168.178.46 neste exemplo. Caso voc deseje estend-las a um grupo de mquinas, ou todas as mquinas, basta apenas substituir a entrada host= para 192.168.178.*. Mas tenha cuidado: esta mudana ir influenciar toda a regra e ir fazer com que o OpenVAS assuma um falso positivo mesmo que uma vulnerabilidade genuna exista. Em outras palavras, voc precisa verificar as regras que voc modificou em intervalos regulares.

Visualizaes
O OpenVAS distingue as vrias visualizaes de um objeto alvo para varredura: 1. Visualizao a partir da Internet pblica; 2. Visualizao a partir da rede interna de uma empresa, possvel a partir de vrias zonas de segurana; 3. Visualizao a partir de dentro do prprio objeto alvo, aps o login. As visualizaes 1 e 2 diferem apenas em relao posio ocupada pelo scanner do OpenVAS; no h diferenas sob o ponto de vista do cliente. O cliente OpenVAS pode abrir uma conexo para qualquer nmero de scanners e utiliz-los de forma paralela. Voc deve estar ciente das polticas de segurana na infraestrutura da rede em questo. Mesmo a varredura de seu prprio servidor na zona pblica de sua rede corporativa pode tornar-se um desafio.

Dentro do alvo
Varreduras do OpenVAS que tm a habilidade de efetuar um login na mquina alvo e analis-la a partir de seu interior produzem resultados muito melhores. O login no deve ser o de uma conta administrativa (root); uma conta no privilegiada ir, tipicamente, revelar informaes suficientes sobre o sistema e suas vulnerabilidades. Os pares usurio-senha nos sistemas alvos so algo que voc desejar proteger; infelizmente o OpenVAS no faz um bom trabalho neste caso. Ao invs disto, ele armazena as senhas sem criptografia, em modo texto, na sua base de dados SQLite, tornando-as acessveis ao menos ao administrador do servidor de varreduras, que pode no ser necessariamente o administrador de todos os sistemas alvo. Um simples comando SQL como
sqlite3 tasks.db 'select * from lsc_credentials;'

56

www.linuxmagazine.com.br

Anlise de vulnerabilidades com OpenVAS | ANLISE

Figura 7 O cliente OpenVAS exibindo os resultados de varredura coletados pelo plugin exemplo.

revela toda esta informao confidencial a qualquer um com acesso base de dados. A criptografia das credenciais antes de seu armazenamento no uma soluo, uma vez que estes dados seriam decriptados durante a varredura e, para fazer isto, voc precisaria armazenar uma chave de criptografia em algum lugar no apliativo O cliente clssico OpenVAS revela alguma fraqueza aqui; ele armazena as credenciais de acesso em seu arquivo de configurao local, .openvasrc (tabela 1). Mesmo que voc tenha sido avisado sobre isto, a alternativa de armazenar a palavra-chave para sua chave privada igualmente assustadora. Uma soluo funcional seria armazenar os dados criptografados combinados a uma senha que voc no precise armazenar na aplicao, ou possivelmente usar o suporte a smartcard. Esta fraqueza fornece um amplo escopo de desenvolvimento para as verses posteriores do OpenVAS.

Segurana de chaves
Chaves assimtricas fornecem uma soluo para a distribuio das credenciais de segurana por mltiplos sistemas mitigando, assim, o problema com um repositrio centralizado. A chave pblica deve residir no sistema alvo. A conta deve ter sua senha desabilitada, de forma que a chave privada no cliente seja a nica forma de acess-lo. Como voc pode apenas armazenar a palavra-chave s claras, novamente,

muitos administradores desejaro evitar esta abordagem. A nica forma de proteger a chave privada mant-la em uma memria segura (por exemplo, um pendrive USB) ou criptografar a prpria chave utilizando TrueCrypt, PGP ou Encrypt-FS. O importante que o cliente OpenVAS apenas atualiza a credencial de acesso modificada quando ele varre o objeto alvo. Mesmo que o cliente apague as credenciais de acesso antes de encerrar o programa, elas ainda estaro disponveis no arquivo de configurao. Assim, os administradores dos sistemas a serem sondados podem ter acesso s credenciais, mesmo que a chave privada esteja armazenada de forma central. Uma vez que a chave pblica correspondente est localizada no sistema alvo (em ~./ssh/authorized_keys2 no Linux), os administradores podem, eles mesmos, controlar este processo. Apesar de ter a chave pblica e privada, o acesso ao sistema alvo ainda negado. Um plugin especial para o OpenVAS pode restringir o acesso a uma nica varredura atravs da mudana da localizao do arquivo com as chaves aps a varredura com o seguinte comando,
pread(cmd: "/bin/mv", argv: make_list ("mv","~/.ssh/ authorized_keys2", "~/.ssh/ authorized_keys2.bak"));

O processo para a criao dos pares de chaves similar ao processo usado no OpenSSH [8]. Entretanto, ao contrrio do que diz a documentao do OpenVAS, apenas chaves do tipo DSA funcionam hoje, no RSA [9]. Em outras palavras, no uma boa ideia usar as ferramentas de criao de credenciais existentes no pacote interno (em Extras/ LSC Credentials Manager). O mtodo requer apenas a chave pblica para a conta desejada (por exemplo sshovas em ~/.ssh/authorized_keys2). Depois disto, todos os sistemas nos quais voc precisa efetuar a varredura interna devem estar acessveis atravs do comando
ssh -i key-directory/ sshovas_dsa.p8 sshovas@target

Para testar, habilite o plugin SSH Authorization. Aps a varredura voc deve observar a confirmao de que as verificaes de segurana esto habilitadas em SSH/Security Node. Como alguns plugins so escritos de forma dependente da linguagem de programao usada o plugin para a varredura do VMWare reconhece apenas a cadeia de caracteres de retorno command not found faz sentido usar o ambiente na lngua inglesa, por exemplo configurando LANG=us em ~/.profile.

plugin apara varreduras de segurana


Ainda que o OpenVAS tenha, atualmente, cerca de 21.000 plugins, pode ser que voc precise desen-

que equivalente a permitir o acesso varredura apenas uma vez.

Linux Magazine #83 | Outubro de 2011

57

ANLISE | Anlise de vulnerabilidades com OpenVAS

volver o seu para que ele esteja em conformidade com a poltica de segurana de sua empresa. Voc precisar usar a linguagem NASL (a linguagem de script do Nessus, Nessus Attack Scripting Language) para isso. Vrios manuais esto disponveis para ajud-lo a aprender esta linguagem [10] [11] e voc pode usar os plugins existentes como modelo. Um artigo em uma das edies prvias da Linux Magazine [12] descreve a estrutura dos plugins NASL. O cdigo fon-

te para o exemplo discutido aqui est disponvel para download [13] tambm com uma traduo para o ingls [14]. O exemplo implementa um requisito de segurana que previne o armazenamento aberto em texto de senhas em servidores Subversion [15]. O script deve procurar por configuraes clientes que no previnam, explicitamente, o armazenamento no criptografado de senhas. Para permitir que isto acontea, o script verifica os arquivos de

Quadro 1: Verses, pacotes e componentes


Os nomes dos componentes do OpenVAS 4 so um tanto confusos. Por exemplo, o nmero de verso est apenas relacionado com as bibliotecas (atualmente 4.0.5); os componentes scanner (3.2.4) e manager (2.0.4) usam outros nmeros [16]. Os repositrios disponibilizados pela maioria das distribuies Linux atuais ainda parecem manter os binrios antigos; o Ubuntu 11.04 ainda oferece o OpenVAS2. A comunidade, entretanto, oferece pacotes mais recentes; por exemplo, o openSUSE Build Service [17] mantm pacotes para Debian e Ubuntu. Os pacotes do OpenVAS 4 no mais mantm o cliente OpenVAS nativo apreciado por muitos usurios por ser mais fcil de usar e manter dados locais de congurao. Caso voc use seu gerenciador de pacotes para instalar o cliente, voc ter como resultado uma verso obsoleta. Ao invs de comprar da Greenbone um aplicativo de varredura completamente suportado [18] em sua verso atualizada, os usurios interessados podem baixar os cdigos fonte mais recentes a partir do repositrio [19] e compilar as ferramentas que necessitam. Se voc gosta de trabalhar com a verso em seu estado da arte, voc deve considerar obter o cdigo atravs do Subversion. relativamente fcil compilar o pacote inteiro. Eu escrevi um Makele para isto e o testei no Ubuntu [13]. O arquivo cuida do download e atualizao do cdigo, instala os pacotes necessrios e cria e instala a verso atual e suas atualizaes (listagem 1). Aps completar estes passos, o comando make up atualiza o software sempre que voc desejar.

configurao global do Subversion em /etc/subversion para conferir se as diretivas store-passwords = no ou store-plain-text-passwords = no existem. Esta diretiva no pode estar desabilitada, o que, infelizmente, o caso na instalao padro. Os detalhes do cabealho obrigatrio do plugin (descrio), que so consultados pelos clientes (listagem 3), permitem a voc selecionar os plugins relevantes para a sua varredura e configurar suas preferncias. As instrues em script_dependencies garantem que o OpenVAS ir executar os pluguins requeridos e acessar os resultados e tarefas preliminares (neste caso, um login via SSH e a lista de pacotes instalados). A especificao de um ID nico (script_id) ir causar, inicialmente, um problema j que o OpenVAS no possui, atualmente, um esquema unificado de numerao. Hoje nenhum plugin utiliza o novo ID OpenVAS, script_oid, introduzido na verso 1.0.3; ao invs disto eles ainda usam a numerao simples com script_id. Dito isto, o OpenVAS converte, internamente, o antigo esquema para o novo (gura 6). Para encontrar um intervalo numrico que sirva para seus plugins, voc pode usar o Awk para descobrir os nmeros j utilizados no diretrio de plugins:
find . -type f -print | xargs fgrep script_id | awk -F '[()]' '{print $2}' | sort -n [...] 2000201 9000001 9999991 9999992

Quadro 2: Varreduras de provedores


Provedores de servios de hospedagem estabelecidos esto plenamente cientes do problema de varreduras de rede e desenvolveram (em alguns casos, muito variadas) estratgias de preveno. Grandes provedores identicaram os padres tpicos de varredura com bastante conabilidade no trfego de rede e automaticamente desconectam, momentaneamente, o alvo de varredura. A experincia mostra que ferramentas populares ainda retornam bons resultados quando usadas na Internet [20]. O OpenVAS oferece escolhas de varredura de portas que voc pode congurar sucientemente bem na opo Prefs. Caso isto no funcione, voc pode usar um sistema externo de varredura de portas e passar seus resultados ao OpenVAS. Isto torna suprua a varredura de portas conhecidas nos servidores web de sua empresa e voc pode desabilit-la denindo padres de varredura esttica de portas no OpenVAS.

Depois de fazer isto, eu decidi usar o nmero 9999001 para o exemplo. O uso de script_add_preference cria uma caixa de checagem abaixo das opes Prefs do cliente OpenVAS para que o novo plugin seja habilitado.

58

www.linuxmagazine.com.br

Anlise de vulnerabilidades com OpenVAS | ANLISE

O sistema alvo
A prxima parte do plugin abre uma conexo protegida por SSH ao sistema alvo. Infelizmente, a troca de informao genrica no funciona em um teste local j que os plugins falham em comunicar-se atravs da base de conhecimento interna. Em outras palavras, voc precisar configurar a conexo SSH explicitamente para os testes locais. Voc no pode usar a conexo existente atravs de sshauthorization.nasl porque ssh_ login_or_reuse_connection no ir retornar um socket vlido. Infelizmente, voc precisa armazernar os dados de conexo s claras e remov-los novamente depois de completar o plugin. Novamente, voc pode avaliar a opo Launch this script do plugin. Para investigar o sistema alvo, o plugin pode enviar comandos Shell arbitrrios atravs de ssh_cmd e investigar a sua sada. Funes internas como egrep tambm esto disponveis [16]. A sada do plugin ou seja, a classificao da vulnerabilidade tratada por security_note, security_warning, ou security_hole. Os plugins NASL so armazenados em Install-Directory/lib/openvas/ plugins ou em seus subdiretrios. O teste da sintaxe e lgica do seu plugin deve ser feito, primeiramente, fora do ambiente OpenVAS. O comando
openvas-nasl -X -i .. unibwm1.nasl

nova conexo para o scanner ir receber a atualizao do plugin. Depois de selecionar o plugin e

executar a varredura no sistema alvo, os resultados aparecero no relatrio (figura 7).

Mais informaes
[1] OpenVAS software - Clientes, servios e protocolos: http://www.openvas.org/about-software.html [2] Greenbone: Gesto de Vulnerabilidade com o GSM: http:// greenbone.net/learningcenter/vm_with_gsm.html [3] Greenbone Desktop Suite para Windows: http:// www.greenbone.net/technology/gds.html [4] IT-Grundschutz: https://www.bsi.bund.de/EN/Topics/ ITGrundschutz/itgrundschutz_node.html [5] VirtualBox: http://www.virtualbox.org/ [6] Backports no desenvolvimento de software: http:// en.wikipedia.org/wiki/Backport [7] Gesto de patches no Ubuntu usando o OpenSSH como exemplo: http://packages.ubuntu.com/hardy/openssh-server [8] Executando testes locais de segurana: http:// www.openvas.org/performing_lsc.html [9] Erros SSH durante a varredura quando da utilizao de pares de chaves pblico-privada por JohnBradley: http://wald.intevation. org/tracker/index.php?func=detail&aid=1502&group_id=29&atid=220 [10] "The NASL2 reference manual por Michel Arboi: http:// michel.arboi.free.nasl2ref/fr/nasl2_reference.pdf [11] "Writing Nasl Scripts (sumrio) por Hemil Shah: http://www. infosecwriters.com/text_resources/NASL_HShah.pdf [12] "O farejador de vulnerabilidades OpenVAS por Geoff Gallitz e Tim Brown, Linux Magazine, Junho de 2010, pp. 34-39 [13] Makele e cdigo fonte: https://subversion. unibw.de/public/openvas [14] unibwm1.nasl com traduo para o ingls: http://www. linux-magazine.com/Resources/Article-Code [15] Subversion: http://subversion.apache.org/ [16] Pacotes OpenVAS: http://www.openvas.org/install-packages.html [17] openSUSE Build Service: http://en.opensuse.org/Build_Service [18] Greenbone Networks: http://greenbone.net/ [19] Repositrio OpenVAS: https://svn.wald. intevation.org/svn/openvas/trunk/ [20] Nmap: "Scanning the Internet" por Gordon Lyon (Fyodor), apresentao feita na Black Hat e Defcon 2008: http://insecure.org/presentations/BHDC08/

trata disto. Voc precisa da opo -X aqui porque o plugin no est assinado. A opo -i aponta o arquivos para os scripts dependentes no diretrio mencionado. Aps completar o teste com sucesso, voc pode oferecer o plugin para seus clientes. Para isto, voc precisa atualizar o servio de varredura openvassd enviando a ele o sinal kill -HUP. De agora em diante, qualquer cliente que abra uma

Gostou do artigo?
Queremos ouvir sua opinio. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/5885

Linux Magazine #83 | Outubro de 2011

59

SEGURANA | Segurana com IPv6

O que voc precisa saber sobre segurana com IPv6

SEGURANA

Modo de segurana
O protocolo IPv6 surgiu nos primeiros dias da web e contm alguns recursos que eram realmente importantes nos anos 90. Mas pelos padres de hoje, alguns deles podem no ser vistos como melhorias em relao ao IPv4, exigindo de administradores ateno extra com a segurana. por Ralf Spenneberg

IPv6 traz diversas mudanas ao protocolo de Internet (IP). As mais conhecidas so o aumento do espao de endereo de 32 para 128 bits e mscaras de rede mais fceis. Em vez de mscaras de rede de comprimento varivel (VLSM), o IPv6 compatvel apenas com mscaras de 64 bits (/64); e os endereos de broadcasts foram abandonados dando lugar a endereos unicast, multicast e anycast. Alm do escopo global que garante a acessibilidade na Internet IPv6, o protocolo IPv6 usa escopos locais diferentes para restringir a acessibilidade de uma rea menor. O escopo link-local restringe o intervalo de endereos IP rede local; os escopos site-local e organization-local combinam mltiplas redes atravs de roteadores. No IPv6, os sistemas ainda precisam do endereo MAC das placas de rede para se comunicarem. O protocolo

ICMPv6 encontra esse dado na camada 3 (do modelo OSI), enquanto o IPv4 ainda usa o Address Resolution Protocol (ARP) na camada 2. Os desenvolvedores renomearam esse processo para Neighbor Discovery Protocol (NDP) [1]. A tcnica de Path MTU Discovery agora obrigatria no IPv6; ento, o ICMPv6 tem um papel muito mais importante do que em redes IPv4. Tambm h compatibilidade com a famlia de protocolos IPsec antiga companheira da rea de segurana e que administradores usam regularmente para configurar redes virtuais privadas. Fs do Network Address Translation (NAT) inicialmente ficaro desapontados. Apesar dos desenvolvedores continuarem tentando [2], ainda no h NAT para endereos IPv6 (NAT66). Em outras palavras, cada sistema que precisa se comunicar com outros na Internet IPv6

necessita de um endereo global. Isso significa que os sistemas sejam eles impressoras de rede ancestrais, clientes Windows sem atualizaes ou dispositivos esquecidos esto sempre acessveis, a menos que um firewall os bloqueie.

Nada de novo?
Muitos recursos de segurana no mudaram em relao ao IPv4. Os protocolos de transporte na Camada 4 (TCP, UDP) ainda funcionam do mesmo modo; e no h necessidade de configurar os protocolos de aplicativos como HTTP, SMTP e FTP de nenhuma outra maneira, alm dos novos endereos. O IPv6 tambm no aumenta a segurana dos protocolos: um agressor ainda poderia realizar um ataque SYN flood (uma variao do DoS) no IPv6 do mesmo modo que no IPv4. Alm disso, h pouqussimas mudanas na camada 2 do modelo OSI.

60

www.linuxmagazine.com.br

Segurana com IPv6 | SEGURANA

O protocolo ARP foi abandonado, o que vai ajudar a evitar alguns tipos de ataques de falsificao, mas no todos (quadro 1). Um agressor poderia obter os mesmos resultados com falsificao NDP. Desenvolvedores do IPv6 reconheceram essa forma de ataque e especificaram modificaes no protocolo com o RFC 3791 (Secure Neighbor Discovery Protocol, SEND) [3]. O SEND usa endereos gerados com criptografia de chaves pblicas para autenticar mensagens NDP. Infelizmente, poucos sistemas operacionais so compatveis com essa extenso, incluindo o Windows 7. Um administrador s pode combater a falsificao NDP com switches multilayer inteligentes que mantm uma tabela interna com todos os endereos IPv6 e endereos MAC, para poder identificar e descartar mensagens falsificadas. Fornecedores chamam essa abordagem no IPv4 de Dynamic ARP Inspection (DAI) [4]. O NAT no existe mais sem nenhum substituto vista o que no uma notcia totalmente boa. Inicialmente, administradores que precisam gerenciar FTP, Oracle SQL Net ou H.323 ficaro felizes com a convenincia que essa mudana traz. Esses protocolos negociam novas portas dinamicamente durante as operaes. Mapear isso corretamente com traduo de endereos se tornava muitas vezes um grande desafio: o algoritmo NAT precisa entender e rastrear o protocolo para identificar a nova porta negociada. Outros protocolos que no usam portas, como o ESP do IPsec, podem finalmente ser implementados sem solues provisrias (como NAT Traversal) atravs de encapsulamento UDP, do modo que seus desenvolvedores originalmente projetaram.

Privacidade ameaada
A falta de proteo para os dados outro aspecto negativo:

Administradores precisam de um firewall confivel para proteger sua estrutura interna de rede e esconder os IPs utilizados. Provedores de Internet podem relacionar conexes individuais a computadores especficos da rede cliente sem a necessidade de cookies Computadores so acessveis de fora da rede local atravs de seus endereos IPv6. Usurios domsticos no precisam mais configurar o encaminhamento de portas em roteadores DSL para poderem acessar seus computadores a partir de outros endereos. No entanto, essa nova rota direta para dentro da rede tambm est aberta para agressores: polticas de firewall robustas so vitais para proteger sistemas globalmente acessveis. O IPv6 gera um endereo baseado no endereo MAC (leia a seo sobre configurao automtica, mais adiante neste artigo). Como o computador sempre cria a parte host de seu endereo IP (o identificador EUI) do mesmo jeito baseado no endereo MAC ele tem um identificador nico por vrios dias (figura 1). Se a mquina um laptop que se conecta a vrias redes, apenas o endereo de rede muda. Se o usurio acessar um servidor na Internet, o dono do servidor pode saber que se trata da mesma mquina devido ao identificador idntico no endereo IPv6. Um operador de website tambm pode ver a partir de qual rede o usurio do laptop visitou o site. Tudo o que ele precisa fazer consultar o endereo de rede usando whois (listagem 1). Os endereos IPv6 so registrados pelo provedor como os anteriores; o comando whois pode identificar a empresa para quem o endereo est designado. No pior cenrio, seria possvel, por exemplo, criar um perfil de movimentao para um vendedor que est viajando.

Figura 1 O ID de um endereo IPv6


construdo com o endereo MAC: acrescenta-se FFFE e o segundo bit do primeiro byte invertido.

Identicador EUI aleatrio


Para evitar o rastreamento, o RFC 4941 introduziu as extenses de privacidade do IPv6 [5], que faz o sistema operacional criar o identificador EUI de modo aleatrio (em vez de usar o endereo MAC). Todos os sistemas operacionais modernos so compatveis com essa funo, e o Windows Vista e Windows 7 habilitam isso por padro. No Linux, o administrador pode habilitar a funo temporariamente com o comando:
sysctl -w net.ipv6.conf.all. use_tempaddr=2

Para tornar essa mudana permanente, preciso modificar as definies do arquivo /etc/sysctl.conf, conforme a distribuio ou sistema operacional [6]. Mas esse tipo de designao tem um lado ruim: sempre que um sis-

Figura 2 O computador pode gerar


um endereo link-local sem ajuda externa.

Linux Magazine #83 | Outubro de 2011

61

SEGURANA | Segurana com IPv6

tema operacional habilitar a placa de rede (ou pelo menos uma vez por dia), ele cria um novo identificador. Se um vrus ou worm atingir a rede e no for descoberto pelo administrador at o dia seguinte, ser impossvel relacionar os endereos IP logados pelo firewall aos sistemas individuais, porque ningum tem registro dos endereos IPv6 aleatrios.

Firewall em vez de NAT


Com o IPv6, administradores no tm opo a no ser introduzir regras robustas no firewall. Felizmente, com regras orientadas a estados voc alcana o mesmo nvel de segurana de um cenrio NAT. Clientes s podem estabelecer conexes de rede em uma nica direo. Na verdade, o uso puro de NAT menos seguro, pois apenas obscurece

os endereos IPs, em vez de evitar o acesso. Com roteamento de fonte e conhecimento dos endereos IP, um agressor poderia at abrir conexes em sistemas NAT, se o firewall assim permitisse. Dito isso, o kernel Linux no introduziu filtros stateful para IPv6 at a verso 2.6.20. Assim, distribuies antigas (por exemplo, RHEL 5 e CentOS 5) so inteis como firewalls IPv6. Para garantir que apenas clientes internos possam se conectar a sistemas na Internet e, ao mesmo tempo, bloquear conexes at as mquinas locais, voc pode usar regras de firewall como os do script simples da listagem 2. As quatro regras do permisso para todos os pacotes que pertenam s conexes ESTABLISHED ou que contenham mensagens de erro para elas (RELATED). Conexes NEW s so permitidas se vierem da rede interna. Se quiser usar protocolos como FTP,

Listagem 1: whois 2001:67c:24::/48


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 Querying whois.ripe.net [whois.ripe.net] inet6num: 2001:67c:24::/48 netname: SPE6-NET descr: OpenSource Training Ralf Spenneberg country: DE org: ORG-OTRS1-RIPE admin-c: RS9110-RIPE tech-c: RS9110-RIPE status: ASSIGNED PI mnt-by: RIPE-NCC-END-MNT mnt-by: MNT-Jansen mnt-lower: RIPE-NCC-END-MNT mnt-router: MNT-Jansen mnt-domains: MNT-JANSEN source: RIPE # Filtered

que negociam dinamicamente novas portas, preciso carregar os mdulos correspondentes (por exemplo, com modprobe nf_conntrack_ftp). Uma tarefa muito mais difcil proteger o prprio firewall. Em um cenrio somente IPv4, voc pode simplesmente dispensar todos os pacotes endereados a ele nas cadeias INPUT e OUTPUT, a menos que precise acess-lo atravs da rede. Se voc fizer isso com o IPv6, no ser possvel nenhuma comunicao atravs do firewall, j que o IPv6 usa NDP em vez de ARP. Todo sistema que quiser us-lo para se comunicar com endereos alm do setor local precisa descobrir o endereo MAC do firewall; o que no um problema no IPv4, j que o iptables ignora os pacotes ARP na Camada 2 (a resoluo de endereos MAC funciona independentemente das regras de iptables). Com o IPv6, a resoluo de endereos MAC depende do ICMPv6 na camada 3. Se as regras do ip6tables dispensarem todos os pacotes, isso inclui as mensagens ICMPv6, e a resoluo de endereos MAC no funcionar. Em outras palavras, voc precisa permitir pelo menos as mensagens ICMPv6. Como o IPv6 usa o protocolo ICMPv6 para diversas funes, o RFC 4890 [7] fornece instrues detalhadas para ajudar administradores de firewall a definir as regras certas.

Autocongurao
Um dos melhores recursos do protocolo IPv6 a Stateless Automatic Autoconfiguration (SLAAC) [8] para os endereos IPv6 de sistemas individuais. Como voc no precisa configurar um servidor DHCP, isso efetivamente acaba com um ponto de falhas. Como j mencionei, os sistemas geram um identificador baseado em seus endereos MAC. Primeiro, eles usam o identificador para gerar

Listagem 2: ip6tables
01 02 03 04 05 06 07 08 LAN=eth0 INTERNET=ppp0 IPT=/sbin/ip6tables $IPT $IPT $IPT $IPT -P -F -A -A FORWARD DROP FORWARD FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT FORWARD -i $LAN -o $INTERNET -m state --state NEW -j ACCEPT

62

www.linuxmagazine.com.br

Segurana com IPv6 | SEGURANA

um endereo link-local ao anexar o identificador rede fe80/64 (gura 2). Hosts podem usar esse endereo para se comunicarem na rede local, como era possvel no IPv4 com APIPA (Windows [9]) ou no Avahi (Linux [10]) como endereo de IP de conexo local em uma rede Zeroconf [11]. Os hosts, ento, usam mensagens de solicitao de roteamento ICMPv6 [1], as quais os roteadores respondem com anncios de roteamento ICMPv6 contendo um prefixo global. Os sistemas criam um endereo IP global com esse dado, anexando seu identificador ao prefixo global (gura 3). Se diversos roteadores responderem, ou se o anncio conter mltiplos prefixos, o sistema criar mltiplos endereos IPv6. Para a autoconfigurao funcionar, as regras de firewall obviamente precisam permitir essas mensagens de solicitao ICMPv6; contudo, voc no pode filtr-las de modo stateful porque o servidor de configurao as anunciam em multicasts. Infelizmente, solicitaes de roteamento e mensagens de anncio tambm no podem ser autenticadas. Em outras palavras, seria possvel um agressor enviar

Figura 3 O cliente usa o endereo link-local para se comunicar com todos os


roteadores da rede atravs do endereo multicast ff02::2.

mensagens de anncio de roteamento e efetivamente falsificar um roteador. As ferramentas para esse tipo de ataque j existem [12]. Em condies de produo, a autoconfigurao stateless na verdade no adequada para redes modernas. Os desenvolvedores no levaram em considerao a distribuio de servidores DNS e outros dados quando criaram as especificaes h 15 anos. O RFC 5006 [13] adiciona suporte a servidor de DNS mas no compatvel com todos os sistemas operacionais. De qualquer modo, administradores esto acostumados a usar DHCP para distribuir dados do tipo domnio DNS, servidor NTP ou servidor de boot PXE.

Com o IPv6, administradores no podem simplesmente evitar o DHCP, ou pelo menos sua verso stateless. O sistema operacional usa a autoconfigurao para descobrir seu prprio endereo IPv6 e, ento, o DHCP para pegar mais dados, como os do servidor DNS e domnio DNS. O Windows Vista e o 7 fazem isso automaticamente, se a flag OtherConfig estiver definida no anncio de roteamento.

Entradas DNS e DHCP


Finalmente, em algumas configuraes voc quer o que servidor DNS acrescente automaticamente os hostnames de todos os sistemas que inicializem em seu diretrio; isso tpico em um cenrio Active Directory, por exemplo. Em sistemas Linux isso d um bom trabalho, o que tem levado muitos administradores a usar uma soluo provisria no IPv4 e a autorizar o servidor DHCP a modificar os dados na zona DNS dinamicamente. Com o IPv6, voc no pode usar a autoconfigurao e o DHCP stateless porque o servidor DHCP precisa saber o endereo IPv6 do cliente para adicionar um registro. Em outras palavras, voc precisa de um servidor DHCP stateful para designar endereos IPv6 a partir de uma fila.

Quadro 1: Falsicao ARP


Redes com switches tornam o snifng bem difcil. Um switch detecta qual sistema est em cada porta e encaminha pacotes Ethernet somente para essa porta. Para isso, ele usa uma tabela de endereos MAC identicados e as portas correspondentes. Apesar disso, agressores ainda podem fazer um sniff em todo o trfego com um ataque do tipo interceptador (man in the middle). Antes de um cliente com IPv4 poder se comunicar com um servidor, ele precisa descobrir o endereo MAC do parceiro de comunicao. Para tanto, ele usa o protocolo ARP, enviando uma requisio ARP ao endereo ethernet de broadcast, perguntando por exemplo Qual o endereo MAC do IP 192.168.0.5?. Um agressor pode interferir aqui, respondendo ao cliente com uma resposta ARP falsicada que contm seu prprio endereo MAC. O cliente ento envia o pacote no para o alvo IPv4 desejado, mas para o endereo MAC falsicado. Um switch Camada 2 apenas usa esse endereo MAC e, assim, encaminha o pacote ao agressor. O invasor pode ler o pacote e ento s precisa substituir o MAC de destino com o endereo correto e enviar de volta ao switch. O pacote ento enviado ao destinatrio correto e a conexo est pronta.

Linux Magazine #83 | Outubro de 2011

63

SEGURANA | Segurana com IPv6

Clientes Windows aceitam isso automaticamente se o anncio do roteador tiver a definio ManagedFlag. Em sistemas Linux, voc precisa instalar e configurar de antemo um cliente DHCP adequado. A redundncia importante aqui; se o servidor DHCP falhar, haver problemas na rede local.

A morte do Smurf
O IPv6 acaba com os broadcasts, o que uma coisa boa. Simples ataques de amplificao, como a tcnica Smurf [14], so assim impossveis e tempestades de broadcasts so coisas do passado tambm. Embora o NDP use endereos multicast para descobrir o endereo MAC de seus parceiros de comunicao, os grupos multicast so escolhidos de modo inteligente para que a comunicao seja restrita ao nico computador que o host precisa encontrar, na maioria dos casos. Outros servios que dependiam da comunicao broadcast agora usam multicast; por exemplo, o DHCPv6 usa os dois endereos bem conhecidos ff02::1:2 e ff05::1:3. O primeiro um endereo link-local multicast (ff02) reservado para todos os agentes DHCP (servidores e relays). O segundo um endereo

site-local multicast (ff05) reservado para servidores DHCP. Graas a essas designaes, o IPv6 tipicamente consegue restringir a manipulao de pacotes na pilha IP dos sistemas envolvidos na troca. Isso reduz dramaticamente o trfego de rede, comparado com comunicaes broadcast IPv4. O IPv6 tambm tem compatibilidade obrigatria com a famlia do protocolo IPsec. Mas isso no melhora automaticamente a segurana: se o administrador no configurar esse recurso, o trfego no ser criptografado. A presena do IPsec no necessariamente significa mais segurana; apenas economiza o trabalho de ter que instalar programas. Questes de interoperabilidade e erros de configurao ainda existem.

Dia da caa
Considerando o estado da arte e redes tpicas de 15 anos atrs, os inventores do IPv6 acertaram em muitas coisas. Desde ento, os sistemas operacionais e o gerenciamento de rede com o IPv4 se desenvolveram substancialmente; enquanto com o IPv6, isso no aconteceu. A autoconfigurao s configura o endereo IP e, se os clientes forem modernos, designa o servidor DNS. Para todos os outros dados, voc ainda precisa de um servidor DHCP. DNS e firewalls esto se tornando mais importantes e, sem o IPsec, o IPv6 no ir melhorar a segurana de uma rede corporativa. Pelo contrrio, significa que administradores tero que prestar ainda mais ateno se os clientes esto protegidos ou acessveis globalmente.

Mais informaes
[1] NDP: http://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol [2] Rascunho NAT66: http://www.ietf.org/ proceedings/08nov/slides/behave-14.pdf [3] Protocolo Secure Neighbor Discovery (SEND): http://www.faqs.org/rfcs/rfc3971.html [4] Dynamic ARP Inspection (DAI): http://www.cisco.com/ en/US/docs/switches/lan/catalyst6500/ios/12.2SXF/ native/configuration/guide/dynarp.html [5] Extenses de privacidade IPv6: http://www. faqs.org/rfcs/rfc4941.html [6] Habilitando extenses IPrivacy: http://blog.philippklaus. de/2011/05/ipv6-privacy-extensions/ [7] Filtrando mensagens ICMPv6 em rewalls: http:// www.faqs.org/rfcs/rfc4890.html [8] Stateless Automatic Autoconguration (SLAAC): http://www.faqs.org/rfcs/rfc4862.html [9] APIPA: http://msdn.microsoft.com/en-us/library/aa505918.aspx [10] Avahi: http://avahi.org/ [11] Zeroconf: http://en.wikipedia.org/wiki/ Zero_configuration_networking

O autor
Ralf Spenneberg instrutor freelancer de Unix/Linux, consultor, autor e CEO de sua prpria empresa de treinamento. Ralf publicou diversos livros sobre deteco de invaso, SELinux, rewall e VPNs. A segunda edio de seu ltimo livro, VPN on Linux, foi publicada recentemente.

Gostou do artigo? igo?


Queremos ouvir sua opinio. Fale conosco em m cartas@linuxmagazine.com.br zine.com r Este artigo no nosso site: osso s : http://lnm.com.br/article/5871 r/artic 587

[12] Sute de ataque THC IPv6: http://www.thc.org/thc-ipv6/ [13] Opo IPv6 para congurao DNS: http:// www.faqs.org/rfcs/rfc5006.html [14] Tcnica de ataque Smurf: http://en.wikipedia. org/wiki/Smurf_attack

64

www.linuxmagazine.com.br

VMware Server 2.0 | REDES

VMware Server 2.0 em distribuies Linux recentes

Atualizao disfuncional
Atualizaes de rotina em uma distribuio Linux podem causar alguma dor de cabea; temos algumas dicas prticas para ajudar na restaurao. por Udo Seidel

REDES

istribuies Linux que tenham as ltimas atualizaes instaladas so comuns, principalmente em ambiente domstico. Em muitos casos, as atualizaes automticas esto habilitadas e as mudanas nem so percebidas, a menos que um aplicativo d problemas. Neste artigo, examinaremos um exemplo prtico em que o VMware Server 2.0 se recusou a cooperar depois que o administrador atualizou o sistema operacional subjacente, do Fedora 13 para o 14.

a reinicializao). No entanto, de algum modo, perdi minha conexo com meu aplicativo VMware. Uma inspeo rpida no arquivo /var/log/ messages revelou o problema: o processo vmware-hostd quebrou com um erro de segmentao (listagem 1).

Plano A
Uma anlise inicial mostrou que o VMware no se d bem com a nova verso da glibc do Fedora 14. H alguma verso mais recente do VMware Server? No, porque a VMware descontinuou

Histrico
O ponto de partida desta histria um servidor funcional VMware [1] com o Fedora 13 64-bits (incluindo um conjunto completo de atualizaes) [2]. Alm de vrios usurios para testes, duas mquinas virtuais so executadas nesse hardware e no posso ficar sem elas por muito tempo. O Fedora 14 havia acabado de sair, e minhas experincias iniciais com outras mquinas me deixaram otimista sobre a possibilidade de arriscar uma atualizao completa de meu ambiente Linux em casa. Tudo o que precisei fazer foi habilitar os novos repositrios de pacotes e iniciar o gerenciador de pacotes Yum [3]. Graas a uma imagem de disco do sistema operacional no muito grande e acesso rpido a Internet, meu servidor tinha um Fedora 14 recm-instalado em apenas alguns minutos (logo aps

o desenvolvimento desse produto [4]. A alternativa seria o ESXi [5]. Infelizmente, o hardware que tenho incompatvel e essa no era uma opo para uma soluo provisria rpida. Uma conferida no servidor de atualizaes do Fedora mostrou que no h uma nova verso do pacote glibc. Em outras palavras, atualizar o sistema operacional est fora de cogitao. Ento, eu tinha duas possibilidades para resolver o problema: reverter as mudanas ou descobrir um ajuste provisrio. Voltar para a verso anterior

Figura 1 O Yum facilita o retrocesso do Fedora 14 para 13, mas isso ainda
envolve algumas etapas manuais.

Linux Magazine #83 | Outubro de 2011

65

REDES | VMware Server 2.0

Listagem 1: Erro de segmentao no vmware-hostd


01 Dec 6 13:30:08 virtual kernel: [175.894212] vmware-hostd[3870]: segfault at 2100001c4f ip 0000003c0cb32ad0 sp 00007f3889e9cb88 error 4 in libc-2.12.90.so[3c0ca00000+19a000]

Listagem 2: Etapas manuais antes do downgrade


01 02 03 04 05 06 07 08 09 10 rpm yum rpm yum rpm yum rpm rpm yum ... -e libmount --nodeps downgrade util-linux-ng libblkid libuuid -e upstart-sysvinit --nodeps downgrade upstart -Uvh gdbm-1.8.0-33.fc12.i686.rpm --nodeps --force downgrade perl\* -e man-db -e pam_ldap --nodeps downgrade nss_ldap

significaria retroceder do Fedora 14 para o 13. E, a menos que voc tenha se preparado para isso criando snapshots do sistema de arquivos, esse um processo definitivamente no trivial. Alm disso, a questo da incompatibilidade entre aplicativos e a nova glibc conhecida e fcil de ajustar em alguns programas. A soluo provisria que encontrei foi instalar uma verso antiga da biblioteca, em paralelo com a nova, e alterar o ambiente do aplicativo para que ele encontrasse a verso certa da biblioteca. Soa simples, mas pode ser muito complexo; minha primeira tentativa falhou. Nesse ponto, j tinha perdido um dia e isso estava comeando a me prejudicar. Precisava de uma soluo: deveria tentar o downgrade, afinal?

possvel aplicar a funo em pacotes individuais. Voc deve comear gerando uma lista de pacotes. Sem usar a opo de histrico do Yum, o mtodo mais fcil o comando:
rpm -qa --queryformat '%{NAME}\n' | xargs yum downgrade

sistema operacional ou tentar uma soluo diferente de virtualizao. Mas, uma vez que tenha essa soluo provisria implementada, pode gastar tempo considerando os prximos passos. No meu caso, a incompatibilidade entre a glibc e o VMware Server estava bem documentada; todas as solues na web usavam a abordagem que tentei antes: a instalao paralela de uma verso antiga da glibc. Mas isso realmente poderia ser uma soluo? Talvez houvessem dependncias ocultas, digamos, em relao a mais bibliotecas que teriam que ser instaladas paralelamente. Uma verificao do executvel /usr/sbin/vmware-hostd mostrou que isso apenas um script Shell. O arquivo binrio em si est no diretrio /usr/lib/vmware/bin. O comando
ldd /usr/lib/vmware/bin/vmware-hostd

Infelizmente, essa elegante estratgia falhou de novo no mundo real (gura 1). O problema bsico que o Fedora 14 distribui os pacotes individuais em RPMs diferentes do que no Fedora 13. Na maioria dos casos, voc pode remover o pacote conflitante com:
rpm -e pacote1 --nodeps

mostra quais outros objetos tambm so relevantes: seis pacotes no total (listagem 3). Finalmente, o pacote zlib me deu a soluo para o problema. Para implement-la, voc pode comear criando um diretrio para a instalao paralela:
mkdir -p /usr/lib/vmware/lib/fc13lib64

Prs e contras
Uma abordagem tentar substituir os pacotes individuais com verses antigas, comeando com a glibc, mas isso envolveria saber exatamente quais pacotes substituir (Listagem 2). Alm disso, executar um sistema hbrido com pacotes de duas verses da distribuio no muito recomendvel. Pode haver efeitos colaterais, incluindo instabilidade, ainda mais se voc estiver testando isso com um componente central como a glibc. Felizmente, o Yum introduziu uma opo de downgrade na verso 3.2.27, que torna fcil retroceder do Fedora 14 para o 13. Contudo, s

e ento fazer o downgrade do outro pacote com:


yum downgrade //pacote2//

Aps algumas repeties desse processo, o conflito deve ser resolvido e voc pode retroceder todo o sistema para a verso anterior. A reinicializao final habilita o kernel anterior, as bibliotecas do sistema e o VMware Server aceita o ambiente e decide voltar a trabalhar.

Prxima tentativa
No entanto, esse recuo apenas um ajuste de curto prazo. Mais cedo ou mais tarde, voc ter que atualizar o

O prximo passo pegar os RPMs glibc e zlib do Fedora 13 e descompact-los. Voc pode usar o comando rpm com um diretrio root alternativo para a instalao paralela [6] [7]; no entanto, converter os RPMs em arquivos CPIO e, ento, descompact-los [7] [8] faz mais sentido (gura 2). Essa abordagem evita a necessidade de executar scripts antes e depois da instalao e mantm o banco de dados RPM limpo. Depois que tiver as bibliotecas no devido lugar, preciso ensinar ao binrio vm-ware-hostd a usar os objetos instalados em paralelo. Para fazer isso, defina a varivel de Shell

66

www.linuxmagazine.com.br

VMware Server 2.0 | REDES

fcil. Felizmente, fui poupado de surpresas desagradveis aqui e o VMware Server agora est sendo executado feliz no Fedora 14.

Concluso
Figura 2 Pacotes RPM podem ser extrados facilmente com os comandos
rpm2cpio e cpio. LD_LIBRARY_PATH e, depois, inicie o

binrio. Aps fazer isso, voc pode testar o ambiente (listagem 4). Na verdade, voc pode fazer isso no Fedora 13, mas, obviamente precisar

do novo sistema operacional para o teste final. Antes da atualizao, voc provavelmente vai querer realizar os procedimentos para tornar um possvel retrocesso completo mais

Listagem 3: Bibliotecas necessrias para o vmware-hostd


01 $ ldd /usr/lib/vmware/bin/vmware-hostd 02 linux-vdso.so.1 => (0x00007fff75fff000) 03 libz.so.1 => /lib64/libz.so.1 (0x0000003c0e600000) 04 libvmomi.so.1.0 => not found 05 libvmacore.so.1.0 => not found 06 libexpat.so.0 => not found 07 libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003c0da00000) 08 libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x0000003c14200000) 09 libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003c0e200000) 10 libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003c0d200000) 11 libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f086f4d5000) 12 libc.so.6 => /lib64/libc.so.6 (0x0000003c0ca00000) 13 /lib64/ld-linux-x86-64.so.2 (0x0000003c0c600000) 14 libdl.so.2 => /lib64/libdl.so.2 (0x0000003c0ce00000) 15 libm.so.6 => /lib64/libm.so.6 (0x0000003c0de00000) 16 libfreebl3.so => /lib64/libfreebl3.so (0x0000003c0ee00000) 17 $ 18 $ ldd /usr/lib/vmware/bin/vmware-hostd | awk '{print $3}' | grep lib | xargs rpm --queryformat '%{NAME}\n' -qf | sort -u 19 glibc 20 libgcc 21 libstdc++ 22 libxml2 23 nss-softokn-freebl 24 zlib 25 $

A soluo que descrevi deve funcionar em qualquer distribuio Linux. Dependendo do gerenciador de pacotes de sua distribuio, sero necessrios processos diferentes para obter as bibliotecas antigas. A moral dessa histria que vale a pena ter um plano de contingncia se estiver considerando mudanas de baixo nvel em um sistema. Assim, voc poder implement-la rapidamente caso as coisas saiam drasticamente erradas.

Mais informaes
[1] VMware Server: http://www. vmware.com/products/server/ [2] Fedora: http:// fedoraproject.org/ [3] Yum: http://yum. baseurl.org/ [4] Poltica de verses VMware: http://www.vmware. com/support/policies/ lifecycle/general/ [5] VMware vSphere Hypervisor: http://www. vmware.com/products/ vsphere-hypervisor/ [6] Comunidade VMware, erro de segmentao no Fedora 14: http://communities. vmware.com/message/1641223 [7] RPM: http://www.rpm.org/ [8] GNU cpio: http://www. gnu.org/software/cpio/

Listagem 4: LD_LIBRARY_PATH
01 02 03 04 05 06 07 08 09 10 11 12 $ tail /usr/sbin/vmware-hostd if [ ! VMWARE_NO_MALLOC_CHECK = 1 ]; then export MALLOC_CHECK_=2 fi ##### LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/vmware/lib/fc13lib64 export LD_LIBRARY_PATH ##### eval exec "$DEBUG_CMD" "$binary" "$@" $

Gostou do artigo? igo?


Queremos ouvir sua opinio. Fale conosco em m cartas@linuxmagazine.com.br zine.com r Este artigo no nosso site: osso s : http://lnm.com.br/article/5875 r/artic 587

Linux Magazine #83 | Outubro de 2011

67

PREVIEW

Linux Magazine #84


Computao de alto desempenho
A Linux Magazine de Novembro ir trazer como tema de capa Computao de alto desempenho no mundo real. Voc ir ver como montar facilmente um cluster com software livre e utilizar todo o poder de seu parque de mquinas para realizar tarefas como processamento de grandes volumes de informao, renderizao de multimdia e muito mais.

Admin Magazine #4
Otimizao de velocidade
Na prxima edio da Admin Magazine, voc ira conhecer as melhores dicas e tutoriais para tirar maior proveito dos computadores existentes em seu parque de TI, diminuindo assim a obsolescncia do hardware e as mais diversas formas para aumentar o desempenho dos servios que so executados na rede. No perca a edio #4 da melhor revista para administrador de redes.

82

www.linuxmagazine.com.br

Вам также может понравиться