Lm 105 ce

Page 1

AUGUSTO CAMPOS P.60 Abrir o código: um relato pessoal

MADDOG P.60 Conhecer linguagens de máquina pode salvar a sua vida

CEZAR TAURION P.60 Incorporte a mobilidade na TI das empresas

MEDIALINX # 105 Agosto 2013

A REVISTA DO PROFISSIONAL DE TI

Raspberry OS MINI COMPUTADORES SÃO OS NOVOS QUERIDINHOS DOS NERDS E GEEKS. A IDEIA É GENIAL, MAS ATENDE ÀS SUAS NECESSIDADES? P.28

Pi

» Tudo o que você precisa para iniciar no mundo RPi P.30 » Central multimídia rápida e fácil P.35 » Crie uma estação metereológica com RPi P.41

VEJA TAMBÉM NESTA EDIÇÃO: » Bind10 e todas as suas múltiplas facetas P.46 » Ferramentas úteis para gerenciamento de logs e usuários P.53 » Gerencie domínios AD a partir do Linux P.58

UBUNTU TOUCH P.62

Aprenda a instalar e configurar o Ubuntu em dispositivos Android

ANDROID P.68

Gerencie arquivos de forma simplificada com AirDroid

Segurança P.71

Proteja-se contra ataques do tipo drive-by 00105 9 771806 942009

WWW.LINUXMAGAZINE.COM.BR

#105 08/13 R$ 14,90 € 7,50


Expediente editorial Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br Editores Flávia Jobstraibizer fjobs@linuxmagazine.com.br Laura Loenert Lopes llopes@linuxmagazine.com.br Editor de Arte Hunter Lucas Fonseca hfonseca@linuxnewmedia.com.br Colaboradores Alan Holt, Falko Benthin, Bruce Byfield, Rich Bowen, Thomas Drilling, Christian Pape, Trommer Ronny, Peter Schulik, Kurt Seifried, Zack Brown, Jon “maddog” Hall, Alexandre Borges, Cezar Taurion, Klaus Knopper, Augusto Campos. Tradução Laura Loenert Lopes Revisão Flávia Jobstraibizer Editores internacionais Uli Bantle, Andreas Bohle, Jens-Christoph Brendel, Hans-Georg Eßer, Markus Feilner, Oliver Frommel, Marcel Hilzinger, Mathias Huber, Anika Kehrer, Kristian Kißling, Jan Kleinert, Daniel Kottmair, Thomas Leichtenstern, Jörg Luther, Nils Magnus. Anúncios: 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 (América do Norte) aphalen@linuxpromagazine.com Hubert Wiest (Outros países) hwiest@linuxnewmedia.de Diretor de operações 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 – Austrália www.linux-magazine.es – Espanha www.linux-magazine.pl – Polônia www.linux-magazine.co.uk – Reino Unido www.linuxpromagazine.com – América do Norte Apesar de todos os cuidados possíveis terem sido tomados durante a produção desta revista, a editora não é responsável por eventuais imprecisões nela contidas ou por consequências que advenham de seu uso. A utilização 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 permissão expressa da editora. Assume-se que qualquer correspondência recebida, tal como cartas, emails, faxes, fotografias, artigos e desenhos, sejam fornecidos para publicação ou licenciamento a terceiros de forma mundial não-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 São Bento, 500 Conj. 802 – Sé 01010-001 – São Paulo – SP – Brasil Tel.: +55 (0)11 3675-2600 Direitos Autorais e Marcas Registradas © 2004 - 2013: Linux New Media do Brasil Editora Ltda. Impressão e Acabamento: EGB Atendimento Assinante www.linuxnewmedia.com.br/atendimento São 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

Linux Magazine #105 | Agosto de 2013

Editorial

Espertinhos Não há problema quando uma empresa, organização ou desenvolvedor não libera o código fonte de suas soluções sob uma licença livre. É uma opção que lhes cabe. Podemos não achá-la a melhor alternativa, mas a prerrogativa é de quem desenvolve o programa. Da mesma forma, louvamos as iniciativas que preservam a liberdade do software, permitindo que outros agentes (pessoas físicas e jurídicas) participem da construção de soluções de código aberto, obtendo todas as vantagens que esse modelo colaborativo de desenvolvimento da tecnologia podem oferecer. Agora, o que nos incomoda sobremodo nos dias de hoje é uma tendência latente – e que está se tornando comum em alguns projetos de software que lançam mão de componentes liberados sob licenças consideradas como Sofware Livre, mas que não obrigam automaticamente a liberação de código derivativo (BSD modificada, Apache 2.0, Mozilla etc.) – de algumas empresas de criar novas soluções, propagandeá-las como Software Livre e de Código Aberto, mas que, na hora de fornecer o código fonte, remetem aos projetos originais como “repositório” de suas contribuições. Com isso, essas organizações parecem querer gozar do prestígio e das vantagens do Software Livre, mas não estão fazendo a parte que lhes cabe nesse processo de desenvolvimento. Liberam uma versão binária de uma determinada edição de seu aplicativo, contendo via de regra limitações de recursos para degustação do programa, mas quando o usuário vai atrás do código fonte, não o encontra em lugar algum, algo que configura uma tentativa clara de evitar a criação de versões derivadas da solução. Observem que há maneiras inteligentes de se fazer isso: a Red Hat há anos fornece todo o código fonte do seu Red Hat Enterprise Linux (RHEL) para download, sem fornecer gratuitamente a imagem da distribuição toda compilada e pronta para instalação. Isso é legal (em suas duas acepções), moral, ético e, de certa forma, genial, como já exaurou Eric S. Raymond no passado. E essa abordagem levou à criação do CentOS, que ainda contribui indiretamente para que o RHEL esteja cada vez mais presente nos data centers modernos, mesmo para aqueles que não tenham interesse ou condições de arcar com os custos de uma subscrição do software. O leitor pode ter certeza de que, quando a necessidade de suporte e de serviços profissionais aparecer, a Red Hat e seus parceiros de canal serão os primeiros a ser chamados a oferecer seus préstimos e a faturá-los. Agora, o que temos visto em outros projetos (especialmente os corporativos, de soluções BPMS, ECM, ERP, CRM etc.) está próximo do que poderíamos caracterizar como“pura picaretagem”! Vamos nos abster de citar os nomes dos projetos que têm seguido esta linha, mas o leitor fique prevenido: projeto de Software Livre que não entrega código da solução com facilidade, deve ser visto com suspeição. Como asseverou Linus Torvalds, em uma frase célebre enviada à lista de desenvolvedores do Kernel Linux em 25/08/2000: “Talk is cheap. Show me the code.” – em tradução livre algo como, “Falar é fácil. Mostre-me o código.” Nos tipos de projetos elencados acima, qualquer coisa menos que isso é problema na certa: gera aprisionamento a um determinado fornecedor ou tecnologia. Não se deixe enganar. Fique esperto e proteja-se contra espertinhos. Rafael Peregrino da Silva Diretor de Redação 3


INDICE CAPA Para todos os gostos

28

Os novos mini computadores estão se proliferando. A ideia é genial, mas atende às suas necessidades? Sabor de framboes

30

Neste artigo mostraremos como começar a brincar com o acessível Raspberry Pi e uma distribuição GNU/Linux.

Versátil multimídia

35

Cansado daquele servidor de mídia grande e desajeitado ocupando espaço na prateleira da sala de estar? Neste artigo mostramos como montar um pequeno sistema multimídia com o versátil e popular Raspberry Pi.

Crie uma estação meteorológica com Raspberry Pi

41

Use o Raspberry Pi para analisar dados e publicar resultados de uma estação meteorológica através de um aplicativo web, acessado através de uma simples porta USB

4

www.linuxmagazine.com.br


Linux Magazine xxx | ÍNDICE

COLUNAS

NOTICIAS

Charly Kühnast 07 Alexandre Borges 08 Augusto Campos 10

➧ Acessa São Paulo recebe US$ 1 Mi da Fundação Bill & Melinda Gates

Kurt Seifried 11

➧ MIT cria processador com 110 núcleos

Klaus Knopper 14 Zack Brown 16

TUTORIAL

CORPORATE

Coluna Antonio Pádua 19 Coluna: Cezar Taurion

22

Coluna: Jon “maddog” Hall 24

Informações preciosas

53

Muitos comandos relacionados com logs e usuários podem ajudar a monitorar o sistema e manter o controle sobre questões de segurança. Neste artigo apresentamos várias ferramentas úteis para manter as coisas em ordem.

Notícias 26 ➧ Dataprev prepara lançamento de sua solução em nuvem para este ano ➧ Red Hat lança programa de certificação OpenStack

REDES É hora da ação

46

Os administradores de redes e sistemas aguardaram cinco anos pelo 10º maior lançamento do Bind, ocorrido em março de 2013. A última versão é uma reescrita completa do servidor de DNS, com um design modular e novas ferramentas de configuração. Mas, estaria ele pronto para os negócios?

Ubuntu Touch: o verdadeiro Linux de bolso

62

Aprenda como instalar e configurar este novo sistema operacional em seu dispositivo Android.

SEGURANÇA Barricadas

Gerente geral

71

58

Simples mas útil, o adtool é uma ferramenta que permite gerenciar um domínio Active Directory a partir da linha de comando do Linux.

Ainda não existe uma solução perfeita para o problema crescente de ataques do tipo drive-by, mas muitas ferramentas estão disponíveis

ANDROID

atualmente para ajudá-lo a manter o código malicioso fora da rede.

Correio aéreo entre Ubuntu e Android

68

Carregue fotos, videos e música de um smartphone Android para o desktop usando o AirDroid e um simples navegador.

SERVIÇOS Editorial 03 Emails 06 Linux.local 78 Preview

Linux Magazine #105 | Agosto de 2013

oid ndr il A a The yal M o R

Th Pos e Cano tage nica Serv l ice

82

ubu

ntu

5


CARTAS

Email para a redação

Permissão de escrita Instalação de fonte

Alternativa ao Cron

Trabalho com edição de materiais técnicos e corriqueiramente necessito de fontes diferentes para formatar meus trabalhos. No Windows costumava apenas arrastar a nova fonte para a pasta Windows/Fontes e esta passava a funcionar. Como posso instalar fontes em meu Ubuntu 12.04? Henrique Garda

Gostaria de saber quais são as melhores alternativa ao Cron e se é possível instalá-lo em um ambiente já em produção sem muito sofrimento. Hiago Lucas Siqueira

Resposta Henrique, instalar fontes no Ubuntu é tão fácil quanto no Windows. Mas você não vai precisar arrastar a fonte para nenhuma pasta. Após realizar o download da fonte desejada, abra-a normalmente, como se fosse abrir qualquer arquivo do seu computador. O visualizador de fontes do Ubuntu irá abrir a fonte e nesta mesma janela vai existir um botão “Instalar”. Basta clicar no botão e a fonte estará pronta para uso. ■

Resposta Caro Hiago, existem várias boas alternativas ao agendador de tarefas Cron, sendo as mais conhecidas o Anacron [1] e o Fcron [2]. No entanto, na edição #100 da Linux Magazine, o autor Oliver Frommel abordou o Whenjobs [3], que nos surpreendeu pela facilidade de uso e por ser uma alternativa extremamente amigável para agendamento de tarefas. Vale a pena ler o artigo [4] e conhecer a ferramenta! ■

Mais informações [1] Anacron: http://anacron.sourceforge.net/ [2] Fcron: http://fcron.free.fr/ [3] Whenjobs: http://people.redhat.com/~rjones/whenjobs/ [4] Alternativa elegante, Linux Ma-

gazine #100, página 57.

Escreva para nós!

Sempre queremos sua opinião sobre a Linux Magazine e nossos artigos. Envie seus emails para cartas@linuxmagazine.com.br e compartilhe suas dúvidas, opiniões, sugestões e críticas. Infelizmente, devido ao volume de emails, não podemos garantir que seu email seja publicado, mas é certo que ele será lido e analisado.

6

www.linuxmagazine.com.br


Coluna do Alexandre

Metasploit – parte 5 Nesta edição, aprenda como utilizar o scanner Nessus para procurar por vulnerabilidade em potenciais alvos. por Alexandre Borges

E

u não tenho qualquer dúvida de que o Metasploit é a melhor ferramenta, a mais completa e mais útil para realizar (ou auxiliar, em alguns casos) na invasão de computadores. Todavia, existem outras ferramentas que podem complementar os recursos do Metasploit: estamos falando dos scanners de vulnerabilidade como Nessus, OpenVAS, Nexpose, Core Impact, Retina e por aí vai. Estes scanners são fundamentais para apontar todas as vulnerabilidades da máquina ou rede que queremos atacar e, uma vez com todos os dados em mãos, utilizar o Metasploit torna-se trivial. Caso o leitor esteja usando a distribuição Ubuntu, poderá prosseguir exatamente como demonstrado mais adiante, sendo que, para outras distribuições os passos podem ser ligeramente diferentes. Por exemplo, sugiro que o leitor tente usar o Kali Linux (sucessor do Backtrack [1]). Tenho certeza de que vai gostar. Na coluna deste mês vou mostrar a instalação do Nessus (poderia também ser o OpenVAS que é muito bom e gratuito) e como ele é

8

integrado dentro do Metasploit. Vamos aos passos: ➧ a) Certifique-se de que sua instalação do Ubuntu está atualizada, através dos comandos apt-get update e apt-get upgrade, realize o download do Nessus [2] e registre-o [3] no site da Tenable. ➧ b) Instale o Nessus e execute o registro local da ferramenta com o código recebido ao cadastrar-se no site da Tenable: # dpkg -i Nessus-5.2.1-debian6_ amd64.deb # /opt/nessus/bin/nessus-fetch --register WEBEVAL-XXXX-XXXXXXXX-XXXX-XXXX ➧ c) Adicione o usuário que será utilizado para realizar o escaneamento e inicialize o Nessus: # /opt/nessus/var/nessus/logs# /opt/nessus/sbin/nessus-adduser # /etc/init.d/nessusd start

Depois da primeira inicialização, mantenha os plugins atualizados executando o comando: # /opt/nessus/sbin/nessus-updateplugins ➧ d) Acesse o Nessus através do endereço http://localhost:8834 (por favor, tenha paciência porque o primeiro acesso demora um pouco...). ➧ e) Uma vez realizado o login, vá para a aba Polices (Políticas) e crie uma nova política clicando no botão New Policy . Na seção General Settings , matenha a op-

ção Setting Type em Basic , dê um nome para a sua política (a minha chamei de Linux Magazine) e, em seguida, vá para a seção Plugins . Lá, sugiro ao leitor desabilitar todos os plugins que não se encaixam em seu ambiente. Por exemplo, em meu ambiente existem máquinas com sistemas Linux (Ubuntu 12.04, CentOS 6, Metasploitable 2), Solaris 11 e Windows (XP e 7) e, por isto, desabilito todos plugins não relacionados (CISCO, Gentoo, AIX, FreeBSD, Fedora, Mac OS, HPUX etc.) e também os plugins que executam ataques de negação de serviços (DoS – Deny of Services ). Não esqueça de clicar no botão Update . ➧ f ) Vá para aba Scan Queue, clique em New Scan, dê um nome para seu escananeamento (o meu chamei de LM Metasploit), escolha a política criada (Linux Magazine, no meu caso) e cadastre o endereço IP das máquinas que serão avaliadas. Concluída esta etapa, pressione o botão Start Scan. ➧ g) Após finalizado o escaneamento, o leitor pode ir até a aba Results e clicar duas vezes no nome do escananeamento (LM Metasploit). Neste momento, todas as vulnerabilidades de todas as máquinas serão mostradas (no meu caso foram 139!). Agora seria possível, através da interface web, usar as vulnerabilidades relatadas pelo Nessus e realizar diversos ataques aos

www.linuxmagazine.com.br


nossos alvos usando estas informações. Entretanto, podemos verificar estes mesmos resultados também dentro do Metasploit. Para isto, vamos executar o framework, carregar o módulo Nessus, conectar-se a ele (o Nessus está instalado na mesma máquina do Metaploit), listar os relatórios provenientes do escananeamento e importar o relatório que foi criado pela ferramenta: # msfconsole msf > load nessus msf> nessus_connect user:nessus

nessus_

password@127.0.0.1:8834 ok msf > nessus_report_list ID Name Status Date -––– –b2666002-e4b8-2381-d4ec8e8ca54c0e5b4d2575fe1da13967 LM Metasploit completed 03:29 Aug 10 2013 [*] You can: [*] Get a list of hosts from the report: nessus_report_hosts <report id> msf > nessus_report_get b2666002e4b8-2381-d4ec8e8ca54c0e5b4d2575fe1da13967 [*] importing b2666002-e4b8-2381-

msf > hosts -c address,svcs,vulns

Alternativamente, o leitor pode executar os seguintes comandos para listar de maneira detalhada todos os IPs, serviços e vulnerabilidades que estão registrados no banco de dados do Metasploit: msf> hosts msf> services msf> vulns

d4ec-8e8ca54c0e5b4d2575fe1da13967

Mais informações [1] Kali Linux: http ://www.kali.org/downloads [2] Download do Nessus: http://www.tenable.com/products/nessus/select-your-operating-system [3] Registro do Nessus: http://www.tenable.com/products/nessus/evaluate

Linux Magazine #XX | Mês de 200X

Deste ponto em diante, podemos produzir um sumário dos hosts, serviços e vulnerabilidades que o Nessus encontrou e que estão agora registrados no banco de dados do Metasploit:

Finalmente, estamos preparados para usar o Metasploit com eficiência. Vejo vocês no mês que vem. ■ Alexandre Borges (linkedin: br.linkedin.com/in/aleborges) é instrutor e especialista sênior em sistemas operacionais Unix, Linux, Banco de Dados, Virtualização, Cluster, Storage, Servidores, Backup, Desempenho e Segurança, além de possuir profundo envolvimento com assuntos relacionados ao kernel Linux.

9


Coluna do Augusto

Abrir o código: um relato pessoal A contribuição com o software livre em projetos pessoais, na experiência do autor. por Augusto Campos

U

m dia fui desenvolvedor. Profissional. Com diploma. Carteira assinada. A vida tem seus mistérios, e com o tempo acabei migrando para a administração de sistemas, depois para a Administração propriamente dita, e o resultado disso é que poucas vezes contribuí diretamente com código para algum projeto open source, apesar de estar envolvido nesse cenário desde 1996. Houve algumas exceções, incluindo o código de extensões para outros programas e um sistema de configuração para conexões PPP discadas, ainda nos tempos heróicos em que conectar um PC com Linux à Internet era uma tarefa muito complicada. Minha contribuição ao longo desses anos sempre foi mais como cronista e disseminador de informações, eventualmente como palestrante, às vezes como colaborador financeiro com um ou outro projeto especialmente meritório e necessitado. A maior parte da minha contribuição ocorre por meio do site BR-Linux, e já compartilhei com vocês o que me levou recentemente a abandonar o sistema WordPress (mais o MySQL) que o mantinha no ar, migrando para um gerenciador de conteúdo baseado em arquivos HTML estáticos. A mudança teve o resultado desejado, fácil de medir pelas consequências diretas: a carga do servidor de hospedagem, que costumava ficar acima de 80%, agora costuma ficar abaixo de 5%. Em decorrência das mesmas causas, as páginas carregam bem mais rápido no navegador dos usuários. Em decorrência disso, os sites de busca aumentam o ranking do site. Em decorrência disso, mais usuários chegam ao site todos os dias.

10 1 0

Há um detalhe importante, central à minha narrativa de hoje: o gerenciador de conteúdo em questão foi feito por mim mesmo, em mais horas de desenvolvimento individual do que eu devo ter realizado nos últimos 5 anos somados. Ele está publicado, caso você queira conhecer: é o Axe, em http://augustocampos.net/axe O código em si reflete o que eu sabia de PHP na época em que ainda era profissional da área, e certamente ainda poderá ser refinado, mas no momento já me atende. O resultado pessoal para mim é aquele que eu já descrevi: o meu site agora carrega mais rápido, demoro menos horas semanais com tarefas de manutenção e me sobra mais tempo para escrever, além de ter reduzido o custo de hospedagem etc. Mas desde o começo do projeto eu tinha uma intenção adicional: disponibilizar o produto e seu códigofonte, para mais interessados. Eu cumpri essa meta, como você pode confirmar na URL acima. Entretanto, agora que já fiz, posso compartilhar com vocês: disponibilizar código-fonte de um projeto próprio é mesmo um exercício de humildade e de paciência. Humildade porque fica tudo exposto: nossos erros, artifícios técnicos, uso de recursos desatualizados, inconsistências e outros atributos que podem estar presentes em um código sem impedi-lo de funcionar. Paciência, porque embora contribuições ao projeto sejam escassas (e nem acho que precisariam estar presentes), não falta gente para criticar a escolha da licença livre adotada (Apache), do nome, dos parâmetros de chamada, da interface de usuário etc. São feedbacks bem-vindos, mas quem resolve compartilhar o código de um projeto pessoal fará melhor se estiver preparado para eles. Ainda assim, tem sido uma experiência divertida e eu particularmente recomendo! Augusto Campos. ■ Augusto César Campos administrador de TI e, desde 1996, mantém o site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo.

www.linuxmagazine.com.br


Capa

Para todos os gostos Os novos mini computadores estão se proliferando. A ideia é genial, mas atende às suas necessidades? por Flávia Jobstraibizer

M

uito se tem falado nos últimos tempos sobre os incríveis mini computadores. São várias as iniciativas que se encaixam neste modelo, mas as mais conhecidas são o popular Arduino e o recém chegado Raspberry Pi (e novos projetos estão surgindo). Este último, tema desta edição da Linux Magazine, se tornou o queridinho dos usuários, profissionais de TI, nerds e geeks em geral. Sua facilidade de uso permite que até mesmo usuários que não tiveram contato anterior com placas de prototipagem entendam seu funcionamento e consigam criar pequenos projetos sem muita complicação.

O tamanho reduzido e o bom poder de processamento, são tão atraentes no Raspberry Pi, que muitas empresas já adotaram a plataforma para construção de sistemas de automação, gerenciamento de sistemas de backup e até mesmo para a construção de protótipos automatizados de hardware. A questão principal: “como começar?” é respondida nas páginas a seguir. Saiba tudo o que é necessário adquirir para começar a utilizar seu Raspberry Pi e os principais usos que você pode dar à ferramenta. Falando em usar o RPi, um dos principais usos para o RPi por usuários novatos, são as centrais multimidia. Você vai conhecer também

as soluções prontas que podem ser utilizadas para a construção de um completo servidor de midia em casa, usando até mesmo aquela velha TV que só possui saída RCA. Avançando mais nos recursos do mini PC, aprenda também como criar uma central de previsão do tempo, projeto que além de útil, poderá ampliar seus horizontes para a criação de novos projetos pessoais e porque não, ganhar dinheiro com esta plataforma que já tem se tornado a preferida dos antenados de plantão. Você tem uma necessidade ou gosto em especial? Talvez o Raspberry Pi possa atendê-lo! Bons testes e boa leitura! ■

Matérias de capa

28

Sabor de framboesa

30

Versátil multimídia

34

Crie uma estação meteorológica com Raspberry Pi

34

www.linuxmagazine.com.br


Redes

É hora da ação Os administradores de redes e sistemas aguardaram cinco anos pelo 10º maior lançamento do Bind, ocorrido em março de 2013. A última versão é uma reescrita completa do servidor de DNS, com um design modular e novas ferramentas de configuração. Mas, estaria ele pronto para os negócios? por Konstantin Agouros

O

popular software para gerenciamento de DNS Bind, goza de uma reputação mista. Embora a maior parte dos servidores DNS presentes na web o execute, administradores veteranos irão recordar – com uma mistura de melancolia e horror – a difícil transição do Bind 4 para o Bind 8: embora os arquivos de zona fossem quase idênticos, o arquivo de configuração mudou de named.boot para named. conf. O formato de repente continha colchetes e vírgulas que antes eram

desnecessários. Além disso, o Bind 8 e seu sucessor permitiam mais opções de configuração, para as quais o antigo formato revelava-se insuficiente. Após cinco anos de desenvolvimento (figura 1), o Bind 10 trouxe novidades ainda maiores. Não só a configuração mudou substancialmente, mas também sua arquitetura. Arquivos de banco de dados JSON substituem o arquivo named.conf; as zonas ainda são configuradas com os arquivos de zona familiares, mas

Figura 1 Iniciado em 2008, concluído em 2013 – estaria tudo dentro do cronograma para o Bind 10?

46

na operação também são armazenados em SQLite (o administrador tem a opção de desativar a opção de armazenamento de banco de dados padrão e voltar para o armazenamento em arquivos de zona normais). A configuração é gerenciada através da API Rest usando o HTTPS. Para permitir que isso aconteça, o Bind 10 vem com um utilitário de linha de comando que permite aos administradores fazer alterações de configuração em uma linguagem proprietária. E, por fim, em vez de um nome, o Bind 10 opera através de 12 processos (DHCP não incluso), a maioria dos quais é criada em Python. Os componentes DHCP embutidos, de acordo com o site do projeto, ainda são“experimentais”, mas já é possível configurá-los e testá-los. A modularização do Bind 10 em daemons individuais é a maior mudança para os administradores, e impede que sejam atualizados muitos cenários empresariais existentes. A figura 2 mostra a configuração que a maioria das empresas utiliza para a resolução de nomes. Uma única instância do servidor de nomes lida tanto com o serviço de autoridade como com o recursivo. Todos os clientes usam o nome de um servidor existente que fornece todas as respostas.

www.linuxmagazine.com.br


Figura 2 Na configuração comumente utilizada pelas empresas hoje em dia, um único servidor DNS faz todo o trabalho.

RESPOSTA

Autorização pelo resolvedor do name sever

No entanto, os desenvolvedores dizem que planejam implementar a configuração mostrada na figura 3 em uma versão posterior, permitindo que o servidor avalie o bit RD (Recursion Desired) na consulta. O servidor, então, irá ou encaminhar a solicitação para o componente de autoridade ou para o componente resolvedor. A partir de agora, se a rede do usuário refletir o cenário exibido na figura 3, não será possível usar o Bind 10.

Instalação Rede local

O Bind 10 ainda é muito novo e não inclui pacotes oficiais, mas apenas repositórios únicos, quando do fechamento desta edição.

A equipe de teste da Linux Magazine teve que compilar o aplicativo completo direto da fonte [1]. Pouco antes do nosso fechamento, pacotes para Bind 10 apareceram no openSUSE Build Service, o que permitiu uma instalação fácil com apenas um clique [2]. Na instalação Gentoo utilizada para testes, precisamos instalar os pacotes boost, botan, log4cplus e sqlite3 antes de compilar o Bind; o Python versão 3.1 ou superior também é necessário. O componente DHCP requer MySQL, mas é possível fazer o serviço sem ele para testes simples. Depois de instalar os pacotes, compile rapidamente usando:

RESPOSTA Requisição do cliente

Mas o cenário padrão representado na figura 2 não é o ideal. Uma abordagem mais limpa seria separar as duas funções, como mostrado na figura 3. O servidor de nome recursivo nesta configuração possui entradas para zonas locais que informam que deve ser feita a consulta para a autoridade de nome de servidor explicitamente – seja através do mecanismo secundário ou das entradas da zona de encaminhamento. Como confirma uma pergunta feita na lista de discussão, a configuração mostrada na figura 3 não é atualmente possível com o Bind 10. As requisições para a rede local seguiriam através da Internet, sem nenhuma perspectiva de sucesso para as respostas, uma vez que elas só existem localmente.

Linux Magazine #105 | Agosto de 2013

Autorização pelo resolvedor do name sever

Encaminhamento

Autorização name sever

Rede local

Requisição do cliente

Figura 3 A configuração recomendada, que utiliza um resolvedor DNS separado e um servidor de autoridade não é possível com o Bind 10.

47


Figura 4 Valores médios de um benchmark realizado com o Dnsperf: o Bind 9 ainda é mais rápido. w ./configure ecomercial make ecomercial make install

Se o usuário executar o servidor DHCP com um backend MySQL, precisa da opção --with-dhcp-mysql. Depois de instalar o Bind 10, primeiro deve ser criada uma conta administrativa para a interface de configuração. Para configurá-la, execute o comando b10-cmdctl-usermgr; o utilitário solicitará um nome de usuário e uma senha, que, em seguida, será adicionada ao arquivo cmdctl-accounts.csv presente no diretório $INSTALLDIR/etc/bind10. O programa ainda é muito rudimentar e só permite adicionar usuários, não possuindo outras funções. Todos os nomes de utilitários do software, aliás, começam com b10. Antes de nos prepararmos para configurar o servidor de DNS, precisamos decidir sobre o modo no qual ele será executado: se recursivo ou de autoridade (ou seja, como o mestre das próprias zonas). Ao contrário das versões anteriores, a modularização no Bind 10 leva a um único componente aceitando conexões em um endereço IP. As coisas são diferentes para um host com vários IPs.

48

Comissionamento Para iniciar o name server, execute o script INSTALLDIR/sbin/bind10 que, por sua vez, iniciará a ferramenta b10-init, localizado no diretório libexec da instalação. O b10-init inicia os componentes configurados. Quando iniciamos o Bind 10 pela primeira vez, todas as mensagens de log são roteadas para o console. Em um segundo Shell na mesma máquina, em seguida, inicia-se o bindctl do diretório INSTALLDIR/bin. Esta linha de comando para a API Restful é usada para configurar o Bind 10. Por padrão, o servidor aceita solicitações na porta local 8080 apenas para conexões SSL seguras. Um certificado auto-assinado é instalado juntamente com o Bind 10, mas podemos substituí-lo, se necessá-

rio. Quando uma conexão é aberta pela primeira vez, o comando bindctl consulta o nome de usuário e senha; eles são enviados para ~/.bind10/ default_user.csv para reutilização – porém em texto simples. Depois de fazer login no servidor com o usuário criado, é necessário criar o componente desejado. No primeiro exemplo (listagem 1), ele é uma autoridade de nome de servidor. A primeira linha cria uma instância de uma autoridade de nome de servidor. A linha 2 é usada para marcar os serviços do Bind que requerem atenção especial no tempo de início e de fim, incluindo o resolvedor e o servidor web para a configuração. A terceira linha indica se o serviço de autenticação é necessário para que o

Listagem 1: Como criar um servidor de autenticação 01 02 03 04 05 06 07 08 09 10

dns-test ~ # /opt/bind10/bin/bindctl ["login success "] login as dnsadmin > config add Init/components b10-auth > config set Init/components/b10-auth/special auth > config set Init/components/b10-auth/kind needed > config commit > quit Exit from bindctl dns-test ~ #

www.linuxmagazine.com.br


arquivo configuration.config habilite as alterações, e então será possível testar imediatamente o nome do servidor. Para consultar a entrada version.bind, por exemplo, use o seguinte comando: dig @127.0.0.1 -c CH -t TXT version.bind

Agora é hora de ensinar o servidor sobre as zonas que deve fornecer. O Bind 10 pode usar um banco de dados SQLite ou arquivos legados de zona para gerenciá-los. Apesar do SQLite, ainda precisamos usar arquivos de zona. Além de atualizações dinâmicas de DNS, as mudanças acabam no arquivo de zona; a antiga definição de zona é substituída automaticamente quando importamos a nova versão. Embora seja possível modificar o banco de dados diretamente usando requisições, essa deve ser a causa mais provável de inconsistências; os autores do projeto desaconselharam a fazer isso quando questionados. O programa de importação atende pelo nome de b10-loadzone. A listagem 2 mostra um exemplo de chamada.

Como importar uma zona O Bind 10 não apenas importa zonas mas também implicitamente executa os comandos bindctl, que são necessários para a criação dela, que é então imediatamente ativada. Embora seja possível apontar para um próprio banco de dados SQLite próprio usando a opção -c, é provável que seja necessário apenas dividir o arquivo se o usuário for um grande provedor que suporta muitas zonas. Caso não deseje copiar a zona para o banco de dados, mas prefira continuar a trabalhar com os arquivos de zona tradicionais, precisa habilitar a opção com bindctl (listagem 3). Na primeira etapa, a listagem 3 cria uma nova instância da classe IN, para a qual, em seguida, adiciona parâmetros. O novo tipo é MasterFiles, em

Linux Magazine #105 | Agosto de 2013

Listagem 2: Como importar uma zona para o Bind 10 01 dns-test ~ # /opt/bind10/bin/b10-loadzone 1.168.192.in-addr.arpa db.192.168.1 02 2013-03-19 2 1:18:47.381 INFO [b10-loadzone.loadzone/2644] LOADZONE_ SQLITE3_USING_DEFAULT_CONFIG Using default configuration with SQLite3 DB file /opt/bind10/var/bind10/zone.sqlite3 03 2013-03-19 2 1:18:47.483 INFO [b10-loadzone.loadzone/2644] LOADZONE_ZONE_CREATED Zone 1.168.192.in-addr.arpa./IN does not exist in the data source, newly created 04 2013-03-19 2 1:18:47.566 INFO [b10-loadzone.loadzone/2644] LOADZONE_DONE Loaded 31 RRs into zone 1.168.192.in-addr.arpa./IN in 0.08 seconds

contraste com sqlite3 na configuração padrão. Os parâmetros incluem a zona e o arquivo correspondente em formato JSON. A última linha habilita a memória cache, que se vale da zona da memória principal ao invés da zona do disco. Este passo é absolutamente essencial para zonas criadas a partir de arquivos de texto. Uma entrada na hierarquia data_ sources/classes/IN não é criada para cada nova zona IN, apenas para os tipos MasterFiles e sqlite3. O banco de dados SQLite pode conter várias zonas, nas quais o tipo de zona MasterFiles requer uma entrada JSON para cada par de uma zona em conjunto com o arquivo associado, todos cuidadosamente separados por vírgulas. Tal como acontece com versões legadas do Bind, os administradores precisam comunicar alterações no arquivo de zona; no Bind 10, o comando auth loadzone exemplo.org recarrega a zona exemplo.org.

um processo de transferência de zona. Para que qualquer pessoa não autorizada obtenha uma lista de todos os hosts em uma zona, o Bind assegura a transferência de zona tanto em nível de IP como – e isso é muito mais seguro – usando uma chave ou uma combinação de chave e um IP. O Bind 10 usa um anel de chave, que pode conter várias chaves. Cada entrada é constituída por um grupo de três, com o nome da chave, a chave propriamente dita, e o algoritmo atual. O administrador pode omitir o algoritmo padrão, HMAC-MD5, a partir do nome, mas geralmente é recomendado o uso de outros algoritmos para, em seguida, nomeá-los explicitamente também. O comando bindctl permite criar uma nova chave:

Primário ou secundário?

Agora podemos referenciar a chave nas listas de controle de acesso (ACLs) abaixo de exemplo.org. Para o name server secundário ser capaz de realizar transferências de zona, o administrador deve habilitar outro componente. Novamente, o bindctl

Name servers primários normalmente têm pelo menos um name server secundário que copia as zonas no que que é conhecido como

config add tsig_keys/key "example. org.:Nvf5WLM1LA0E2VuhnkbE4Q=="

Listagem 3: Como criar uma zona com arquivos de zona 01 config add data_sources/classes/IN 02 config set data_sources/classes/IN[1]/type MasterFiles 03 config set data_sources/classes/IN[1]/params { "bind10test.local": "/var/bind/db-test" } 04 config set data_sources/classes/IN[1]/cache-enable true 05 config commit

49


Listagem 4: Como habilitar o componente de transferência de zona 01 02 03 04

config config config config

add Init/components b10-xfrout set Init/components/b10-xfrout/address Xfrout set Init/components/b10-xfrout/kind dispensable commit

é necessário para isso (listagem 4). Na configuração padrão, o name server permite transferências de zona a partir de qualquer lugar, sem restrições. Isto também é exibido na ACL gerada implicitamente: config show Xfrout/ transfer_acl. Podemos gerenciar este comportamento tanto por zona com ACLs separadas como globalmente. As ACLs podem ser escritas em formato JSON e têm a seguinte forma: {"action":"ACCEPT|REJECT|DROP", "from":"<IP_range>","key": "<name_of_key>"}

O IP_range permite que o usuário defina um único endereço ou um intervalo no formato 192.168.1.0/24, como nas versões anteriores do Bind. Este recurso natural se aplica tanto aos endereços IPv4 como IPv6; networks. from e chaves são opcionais e não precisam estar presentes, mas se eles existem em uma regra, esta é considerada uma operação AND. Um conjunto de regras consiste de várias regras onde as vírgulas separam os blocos por {…}; os colchetes separam parênteses com instruções. Como este é um array, o usuário pode adicionar ACLs

com o comando set em vez dos comandos add habituais: config set Xfrout/transfer_acl [{<first block>}, {<second block>}, …]

Também é possível criar mapeamentos mais complexos nas ACLs. O capítulo 9 do “Bind 10 Admin Guide” (Guia do Administrador Bind 10) fornece alguns exemplos [3]. No teste, no entanto, só conseguimos liberar zonas armazenadas pelo Bind em seu banco de dados SQLite. A razão para isso foi, provavelmente, que o banco de dados possui mais tabelas para transferências de zona incrementais, mas essa opção não é destinada a arquivos simples. Se o usuário quiser um name server Bind 10 para atuar como name server secundário, precisará adicionar e configurar dois componentes: o Xfrin lida com as transferências de zona atuais; o Zonemgr checa os registros SOA para alterações e aciona o Xfrin conforme a necessidade. As demonstrações do Bindctl na listagem 5 mostram como configurar o Bind 10 como um name server secundário e como integrar uma zona. O arquivo de log, em seguida, contém entradas

Listagem 5: O Bind 10 como name server secundário 01 02 03 04 05 06 07 08 09 10 11 12 13 14

50

config config config config config config config config config config config config config config

add /Init/components b10-xfrin set /Init/components/b10-xfrin/address Xfrin set /Init/components/b10-xfrin/kind dispensable add /Init/components b10-zonemgr set /Init/components/b10-zonemgr/address Zonemgr set /Init/components/b10-zonemgr/kind dispensable commit add Xfrin/zones set Xfrin/zones[0]/name "example.test" set Xfrin/zones[0]/master_addr "10.1.1.1" commit add Zonemgr/secondary_zones set Zonemgr/secondary_zones[0]/name "example.test" commit

que provam que o Bind não executa a transferência de zona até o commit final. Também é possível acionar manualmente uma transferência de zona com o seguinte comando: Xfrin retransfer zone_name= "example.test" master=10.1.1.1

Infelizmente não é possível definir ACLs para notificações na versão atual, logo, as notificações podem definitivamente ser falsificadas. O Guia do Administrador oferece apenas uma passagem lacônica a respeito:“O controle de acesso (como permitir notificações) ainda não está disponível. O serviço primário/secundário ainda não está completo”, informa o Guia.

DNS dinâmico O Bind 10 suporta atualizações de DNS dinâmico que chegam ao computador, digamos, por outro servidor DHCP. A extensão do servidor DHCP Bind 10 não é capaz de gerá-los. Ou seja: um componente separado existe no servidor DNS para integrar atualizações; o usuário precisa habilitá-lo usando bindctl. Além disso, para cada zona que deve receber atualizações, o usuário deve digitar uma ACL que permita isso explicitamente. A listagem 6 exibe as declarações de configuração e uma ACL para uma zona. Ambos os servidores de nomes recursivos primário e secundário são separados em dois componentes no Bind 10. Se o usuário seguir o conselho do desenvolvedor, os dois componentes não devem ser executados no mesmo host, mesmo porque cada um dos componentes deseja aceitar conexões com o DNS na porta 53; inevitavelmente, eles ficarão no caminho um do outro. Se quiser usá-los em um único host, o usuário precisa pelo menos vincular o resolvedor e o primário em endereços IP diferentes. A listagem 7 mostra como o bindctl inicializa o name server recursivo. Como o servidor recursivo na configuração padrão só aceita conexões no localhost,

www.linuxmagazine.com.br


e uma ACL é configurada por padrão para aceitar apenas consultas recursivas do localhost, é preciso adicionar 10.1.1.1 à lista de endereços em que o Bind aceita requisições e adicionar uma ACL, que também permite consultas recursivas para a rede local 10.1.0.0/16.

Listagem 6: Como configurar atualizações de DNS dinâmico 01 02 03 04 05 06 07 09

config config config config config config config config

add Init/components b10-ddns set Init/components/b10-ddns/address DDNS set Init/components/b10-ddns/kind dispensable commit add DDNS/zones set DDNS/zones[0]/origin 2.168.192.in-addr.arpa add DDNS/zones[0]/update_acl {"action":"ACCEPT","from":"192.168.1.1"} commit

Registros de ações Na configuração padrão, o Bind 10 grava todas as informações de log para o console onde foi iniciado. Para uma operação produtiva, no entanto, o usuário desejará passar as mensagens ou para um syslog ou então para um arquivo separado. A palavra-chave Logging ajuda a gerenciar a hierarquia das configurações. Podemos configurar instâncias individuais do tipo loggers abaixo dela. Um logger pode gravar as ações de um ou mais componentes. Esta definição é configurável através do parâmetro name, onde * faz referência a todos os componentes. A listagem 8 mostra como enviar as entradas de log para um arquivo. Neste caso, o Bind também cuida da rotatividade dos log e também permite limitar os tamanhos de seus arquivos. Usar o syslog como destino permite passar as mensagens para o servidor syslog. O parâmetro severity na definição do logger (linha 3) é definido automaticamente se usarmos o syslog. Os output_options são definidos como um array; no entanto, em nosso laboratório, eles resultaram em duas entradas abaixo de um logger, e nenhuma delas funcionou.

Desempenho O tempo de resposta de um servidor DNS pode ser crítico para o comportamento de muitos outros serviços, sob a perspectiva da capacidade de resposta percebida de um site através da realização de chamadas VoIP. Com a instalação do Bind 10 para este artigo executando em uma máquina virtual, a equipe de testes da Linux Magazine realizou

Linux Magazine #105 | Agosto de 2013

vários testes comparativos entre as versões do 9.9.2 e 10 do Bind. A figura 4 mostra os resultados. Nossa escolha da ferramenta de benchmarking foi o Dnsperf 2.0 da empresa Nominum, um fabricante de appliances de DNS [4]. A ferramenta usa um arquivo de texto com os registros e tipos de consultas para o host local. O benchmark pode então executar o arquivo de texto várias vezes; neste artigo, quatro registros foram inspecionados 10.000 vezes no servidor de autenticação. Também testamos as várias opções de armazenamento que oferecidas pelo Bind 10 (arquivo de texto, banco de dados SQLite, com e sem cache de memória). Tivemos que usar a configuração padrão para a versão 9. Em comparação, o Bind 9 (com 3400 consultas por segundo) em execução na mesma máquina virtual estava logo à frente do imaturo Bind 10. O Dnsperf inclui uma segunda ferramenta chamada Resperf para testar resolvedores recursivos; ela primeiro passa por uma fase de pré-aquecimento, na qual preenche o cache antes de medir a taxa de transferência do resolvedor. Aqui, o teste foi ainda mais evidente em

favor do Bind 9, que conseguiu cerca de 3.000 consultas por segundo em comparação às 1600 consultas resultadas pelo Bind 10.

Muitas armadilhas Durante os testes, ocorreram ainda mais problemas. Por exemplo, depois de ativar o cache para as zonas que o Bind 10 armazenou no SQLite, nós só pudemos consultar as zonas que foram inseridas na lista de zonas de cache. Tivemos ainda que entrar na zona secundária, que existia no mesmo banco de dados SQLite, antes que pudéssemos consultá-lo. O fato de que o servidor de autenticação habilita transferências de zona por padrão é uma volta de 180 graus em comparação com o comportamento de versões anteriores. Administradores descuidados estão certamente em risco. Usuários do Gentoo precisam manter suas instalações do Python 3.2 com o parâmetro sqlite useflag marcado; caso contrário, os componentes que usam Python não vão funcionar, pois não poderão acessar as configurações sem esse parâmetro. O que também está faltando é uma forma de listar as zonas configuradas. Um questio-

Listagem 7: Name server recursivo 01 02 03 04 05 06 07 08 09 10 11

config config config config config config config config config config config

add Init/components b10-resolver set Init/components/b10-resolver/special resolver set Init/components/b10-resolver/kind needed set Init/components/b10-resolver/priority 10 commit add Resolver/listen_on set Resolver/listen_on[2]/address "10.1.1.1" set Resolver/listen_on[2]/port 53 add Resolver/query_acl set Resolver/query_acl[2] {"action":"ACCEPT","from":"10.1.0.0/16"} commit

51


Listagem 8: Log em arquivo 01 02 03 04 05 06 07 08 09

config add Logging/loggers config set Logging/loggers[0]/name * config set Logging/loggers[0]/severity INFO config add Logging/loggers[0]/output_options config set Logging/loggers[0]/output_options[0]/destination file config set Logging/loggers[0]/output_options[0]/output /var/log/dnslog config set Logging/loggers[0]/output_options[0]/maxsize 204800 config set Logging/loggers[0]/output_options[0]/maxver 8 config commit

namento na lista de discussão resultou em sugestões construtivas sobre como resolver o problema em algumas configurações.Um representante do ISC confirmou tanto a ausência do

recurso como os esforços contínuos para adicioná-lo. Se usarmos as ACLs para zonas primárias ou secundárias na instalação Bind existente, ou se as visualizarmos

Quadro 1: Estudo de caso – Servidores recursivos abertos Nos últimos meses, name servers mal configurados causaram numerosos ataques distribuídos de negação de serviço (DDoS). Por exemplo, a organização antispam entitulada “Spamhaus” sofreu um ataque DDoS que alcançou uma incrível banda de 300Gbps. Um ataque DDoS de DNS geralmente envolve o invasor usando o protocolo UDP para enviar muitas solicitações de DNS com o IP de origem da vítima falsificado para dezenas de milhares de servidores na Internet. Name servers recursivos abertos permitem e respondem a esses pedidos para qualquer endereço IP – e, como consequência, enviam as respostas para a vítima, onde os pacotes de dados chegam simultaneamente de todas as partes do mundo. O invasor só precisa enviar pequenas consultas, consultando registros de DNS específicos para gerar grandes respostas de vários kilobytes. Este ataque é muitas vezes chamado de “DNS Amplification Attack”. Name servers recursivos, portanto, sempre precisam de uma ACL para especificar as áreas de rede IP pelas quais são responsáveis. Somente em casos raros isso realmente seria um 0.0.0.0/0 global; em vez disso, o intervalo deve ser restrito a uma DMZ (zona desmilitarizada) ou Intranet. Laptops externos que precisam acessar um servidor DNS corporativo também devem se originar a partir de um intervalo de endereços claramente definidos – uma precaução que é possível graças aos túneis VPN. Para o Bind 10, a listagem 7 mostra o parâmetro query_acl necessário utilizando a rede 10.1.0.0/16 como um exemplo. A entrada: options { [...] allow-recursion { 10.1.0.0/16; U 127.0.0.0/8; ::1; }; [...] } produz uma ACL recursiva permitida no bloco de opções para o (ainda) muito difundido Bind 9.

no Bind 9, precisamos estar cientes de que esses recursos não são possíveis com as ferramentas Bind 10 padrão. Mais uma vez, os autores do teste na Linux Magazine receberam uma resposta negativa na lista de discussão do Bind. Isso pode mudar, a medida em que o Bind 10 se torne mais difundido fora de ambientes de provedores. Atualmente, os recursos que faltam podem ser critérios que impedem a migração.

Cura radical sem benefícios O Bind 10 significa mudança radical, sem que o administrador seja recompensado com benefícios que justificam o esforço. Embora a modularidade recém-adquirida torne-o mais facilmente personalizável e versátil, o que também pode ser útil para um provedor de Internet que oferece muitas zonas primárias, as limitações funcionais, tais como a falta de pontos de vista e, principalmente, a falta de uma opção para executar autoridade de nome de servidor e name server recursivo em uma máquina pode limitar o uso do Bind 10, pelo menos para muitos administradores de redes corporativas. O componente DHCP é recomendado, no máximo, para experimentos por conta de sua imaturidade. Além disso, teria feito mais sentido usar o utilitário de linha de comando para gerenciamento de conteúdo zona; no entanto, esta opção está completamente descartada, e enquanto o Bind 9 ainda superar o Bind 10, como sugere a visão geral deste breve artigo, os administradores corporativos realmente têm pouco incentivo para atualizar para a nova versão. ■

Mais informações

Gostou do artigo?

[1] Fontes Bind 10: ftp://ftp.isc.org/isc/bind10/1.0.0/bind10-1.0.0.tar.gz

Queremos ouvir sua opinião. Fale conosco em: cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8865

[2] Bind 10 no OpenSuse: http://software.opensuse.org/package/bind10 [3] Guia de administração do Bind 10: http://bind10.isc.org/docs/bind10-guide.html [4] Dnsperf: http://www.nominum.com/support/measurement-tools/

52

www.linuxmagazine.com.br


Tutorial

Gerente geral Simples mas útil, o adtool é uma ferramenta que permite gerenciar um domínio Active Directory a partir da linha de comando do Linux. por James Stanger

U

ma das frases mais populares relacionadas ao Linux é “há mais de uma maneira de fazê-lo”. E isso é verdade, especialmente no que se refere ao gerenciamento de implementações do Microsoft Active Directory. Qualquer administrador de sistemas com responsabilidade sobre a implementação de Active Directory em uma rede deve ser capaz de utilizar os recursos de Usuários e Computadores do Active Directory (ADUC), que é encontrado no Microsoft Management Console (MMC), quando precisar. Afinal de

contas, administradores Linux não devem ter medo de usar qualquer ferramenta que resolva o problema. No entanto, por que nos limitarmos apenas a ferramentas específicas do Windows? O adtool, aplicativo de Mike Dawson [1], é uma ferramenta particularmente poderosa e útil para gerenciar o Active Directory do Linux. É estável e tem desfrutado de uma sólida história de desenvolvimento. O projeto adtool desenvolveu um aplicativo baseado em linha de comando, ou seja, é fácil de usar para administração remota e apela para

Quadro 1: Alternativas O usuário não é obrigado a trabalhar com a ferramenta adtool. Os seguintes projetos também fazem um bom trabalho: ➧ Splunk [4] – Um aplicativo muito poderoso para sistemas Windows ou Linux. É possível trabalhar com Active Directory usando o programa, embora após 60 dias seja necessário pagar pelo privilégio. ➧ Free ActiveDir Manager – O ActiveDir Manager é um aplicativo para o sistema móvel Android, com capacidade para fazer as mesmas coisas que o adtool, só que diretamente do seu celular. É conveniente, mas a vantagem do adtool é que nem sempre um administrador deseja trabalhar dessa forma em sistemas remotos. Isso sem contar a comodidade de uma tela de tamanho normal. E, mesmo que este aplicativo esteja disponível para tablets Android, ainda é mais cômodo usar a ferramenta pela rapidez de digitação e início dos trabalhos. Uma versão proprietária do aplicativo está disponível por cerca de 5 dólares americanos. ➧ AD HelpDesk (disponível na loja iTunes) – Este aplicativo gratuito é relativamente limitado, uma vez que só recupera senhas bloqueadas do Active Directory. Mas, isso é melhor do que nada. A versão proprietária (cerca de 5 dólares americanos) contempla recursos adicionais semelhantes aos do Free ActiveDir Manager.

58

usuários que gostam de utilizar interfaces de linha de comando para resolver e descartar um problema tão rapidamente quanto possível. O adtool já existe há anos, e as distribuições Linux oferecem vários graus de suporte para ele. Outras ferramentas mais recentes têm roubado a atenção do adtool (quadro 1), mas a simplicidade estilo Unix do adtool significa que ele ainda é a ferramenta preferida de alguns usuários. Muitas versões do Red Hat possuem o adtool disponível na instalação padrão. Um pacote Debian surgiu através do Debian 6“Squeeze”[2], embora o projeto Debian tenha removido o adtool dos testes em março de 2012 [3], e nenhum pacote da ferramenta esteja listado atualmente para inclusão no novo release do Debian 7 “Wheezy”.

O que é adtool? O adtool foi criado para administrar implementações do Microsoft Active Directory a partir de sistemas Linux. Não, não é algum tipo de ferramenta Google que ajuda a criar páginas web amigáveis ao SEO ou implementações de mídia social. Com o adtool, podemos: ➧ Criar novos grupos Active Directory ➧ Modificar grupos existentes ➧ Deletar grupos

www.linuxmagazine.com.br


➧ Alterar senhas, bem como configurações de senhas alternativas (por exemplo, valores de idade ou validade da senha) ➧ Formulário de consulta para determinar os conteúdos de um banco de dados do Active Directory ➧ Realizar pesquisas sofisticadas Em resumo, podemos fazer todas as coisas que desejamos no Active Directory sem recorrer a uma sessão virtual ou a uma instalação padrão do Microsoft Windows. Para consultores de segurança, a ferramenta adtool é bastante útil, pois poupa tempo.

Instalação do adtool Algumas distribuições Linux possuem o adtool em forma de pacote précompilado e outras não. É preferível instalar a partir de um arquivo tar, pois no passado, muitas implementações foram criadas com problemas graves. Outras implementações não ostentam todos os recursos que precisamos. Por exemplo, nosso sistema Ubuntu 13.04 não possuía o adtool instalado por padrão. Instale a ferramenta com o comando sudo apt-get install adtool. Para fazer com que o adtool execute em um sistema Ubuntu, primeiro precisamos das bibliotecas LDAP, que estão disponíveis no OpenLDAP [5]. O Active Directory é fortemente dependente do LDAP, e a instalação bem sucedida do adtool depende da presença das bibliotecas LDAP. Para instalar, digitamos: sudo apt-get install ldap-utils

Em seguida, instalamos o pacote libldap2-dev. Também precisamos

instalar o OpenSSL ou outra ferramenta que possa criar certificados digitais. Embora a instalação atual do adtool absolutamente não requeira conexões SSL ou quaisquer bibliotecas OpenSSL, o usuário saberá mais adiante neste artigo que

Linux Magazine #105 | Agosto de 2013

precisa de conexões baseadas em SSL para usar todos os recursos disponíveis no adtool. Depois de configurar o LDAP e o OpenSSL, podemos instalar e configurar o arquivo tar da ferramenta sem qualquer dificuldade. Se seguirmos os passos, não precisaremos fazer quaisquer acréscimos especiais de linha de comando durante o processo. Basta seguir a sequência típica: ./configure, make, make check e depois sudo make install.

Ativar o SSL para LDAP (e adtool) É importante configurar o adtool para usar conexões baseadas em SSL. Caso contrário, o usuário não será capaz de usar todos os recursos da ferramenta. Controladores de domínio da Microsoft não permitirão que atividades como alterar senha e criar novos usuários ocorram, a menos que a conexão seja criptografada (quadro 2). Para ativar a criptografia baseada em SSL, comece por criar um certificado digital assinado. Use o OpenSSL, ou um certificado digital fornecido por terceiros, como a VeriSign. Outro certificado conhecido é o TinyCA, que também é conhecido como tinyCA2 [6]. Também é possível criar uma solicitação de certificado do Active Directory do controlador de domínio com um sistema Microsoft.

Depois de criar o certificado digital, instale-o no controlador de domínio que deseja administrar e configure o servidor LDAP para usar o SSL. Esta etapa envolve colocar o certificado nos diretórios apropriados e editar os arquivos do servidor LDAP correspondentes, como /etc/ldap/ldap.conf. Depois, podemos editar o arquivo /etc/ adtool.cfg, que contém informações relevantes para o controlador de domínio que desejamos acessar, e testar a implementação em um controlador de domínio em funcionamento.

Detalhes Para explicar o processo em detalhes, vamos examinar mais de perto os passos descritos na seção anterior. Primeiro, para criar um certificado digital (com OpenSSL, neste caso), podemos começar criando uma solicitação de assinatura de certificado: $ openssl req -days 3650 -nodes -new -keyout /usr/ local/ etc/ openldap/private/ myldapserver.key -out /usr/ local/ etc/ openldap/ private/myldapserver.csr

Este comando informa ao OpenSSL que deve criar uma solicitação de certificado para o servidor, o que, para os fins deste exemplo, é chamado de myldapserver. Neste ponto, são feitas algumas perguntas para o usuário. Tenha o cuidado de fornecer o nome correto do servidor quando perguntado sobre o CN (nome canônico) da entrada. Se o usuário fornecer

Quadro 2: Complexidade da senha e do adtool Ao longo dos anos, alguns novatos no uso da ferramenta adtool têm tido dificuldades na resolução de problemas na implementação de uma nova ferramenta adtool por conta das exigências de senha. Administradores de sistemas por vezes usam uma senha simples para um usuário “novato” ao testar um novo aplicativo como o adtool. Certifique-se de usar uma senha suficientemente complexa mas que seja aceita pelos controladores de domínio da Microsoft. Normalmente, os sistemas esperam que a senha cumpra pelos menos três das cinco seguintes regras: letras maiúsculas, letras minúsculas, base de 10 dígitos, caracteres não alfanuméricos e caracteres Unicode. Para mais informações sobre a complexidade de senha em redes Microsoft, consulte o site Microsoft TechNet [7].

59


Quadro 3: DNS reverso e adtool Problemas de autenticação podem ficar particularmente ruins quando usamos ativamos conexões SSL. Mensagens de erro como a ilustrada a seguir, muitas vezes aparecem nos logs: Invalid credentials (49) additional info: 720408159: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece Em alguns casos, os controladores de domínio da Microsoft aguardam por um DNS reverso válido no momento do login. Então, se o usuário não tiver configurado corretamente o DNS reverso, encontrará problemas. Se encontrar erros que mencionem uma falha na autenticação mas, em seguida, conseguir se conectar, considere a criação ou atualização de DNS reverso na conexão. Isso provavelmente resolverá todos os problemas que o usuário possua, enquanto não estiver passando por um problema maior de autenticação.

o nome errado, o controlador de domínio ou servidor LDAP irá rejeitar todas as conexões baseadas em SSL. Por conta disso, será também obrigado a recriar o certificado. Em seguida, é necessário assinar a solicitação: openssl x509 -req -days 3650 -in / usr/local/etc/openldap/private/ myldapserver.csr -out /usr/local/ etc/openldap/myldapserver.crt -CA /usr/local/etc/openldap/ca.crt -CAkey /usr/local/etc/openldap/ private/ca.key -CAcreateserial

Agora temos um certificado válido e operando no sistema. Em seguida, precisamos copiá-lo para o diretório apropriado, para que o servidor LDAP possa usá-lo. Por exemplo, em nosso sistema, copiamos o certificado para o diretório /usr/local/etc/ openldap como se segue:

/usr/local/etc/openldap/ myldapserver.crt /usr/local/etc/openldap/private/ myldapserver.key /usr/local/etc/openldap/ca.crt

Depois, podemos editar o arquivo /etc/ldap/ldap.conf para que este contenha os valores apropriados. Se, por exemplo, tivéssmos um servidor nomeado como myldapserver no domínio stanger.com, editaríamos o arquivo de maneira correspondente (listagem 1). As três últimas linhas da listagem 1 ajudaram a nos certificarmos de que nosso aplicativo LDAP Linux usou SSL ao se comunicar com o controlador de domínio. Pode ser necessário alterar os nomes de diretório, dependendo da sua implementação Linux. Após ter feito estas mudanças, o usuário pode reiniciar o servidor LDAP.

Listagem 1: Adicione um servidor LDAP ao adtool 01 01 02 03 04 05 06 07 08 09 10 11 12 13 14

60

require 'active_record' BASE dc=stanger,dc=com URI ldap://myldapserver.stanger.com SIZELIMIT 12 TIMELIMIT 15 #DEREF never ssl start_tls TLS_CACERT /usr/local/etc/openldap/ca.crt TLS_CIPHER_SUITE HIGH:MEDIUM:+SSLv3 BASE dc=YOUR,dc=DOMAIN,dc=HERE URI ldaps://stanger.com TLS_REQCERT allowJames Stanger.

Uma vez que o LDAP esteja usando SSL, precisamos editar o arquivo de configuração adtool, que normalmente encontra-se no seguinte local: /etc/adtool.cfg. Se quiser, o usuário também pode criar um arquivo local, como ~/.adtool.cfg. Alguns administradores acreditam que a criação desses valores em um arquivo em nível de usuário seja mais conveniente. Também pode ser mais seguro, pois agora detalhes específicos de conexão são encontrados no diretório de um usuário, em vez de no arquivo /etc/adtool.cfg. A escolha é pessoal. Para o nosso exemplo, usaremos o arquivo /etc/adtool.cfg. Para configurar o arquivo de forma que ele utilize um servidor LDAP com SSL habilitado (myldapserver), o nome de domínio stanger.com, e a senha linuxpromagazinerules, teremos que editar o arquivo adequadamente: uri ldaps://myldapserver.stanger.com binddn cn=Administrator,cn=Users,d c=domain,dc=tld bindpw $ linuxpromagazinerules searchbase dc=domain,dc=tld

Uma vez que tenhamos feito essas mudanças, podemos nos conectar a um controlador de domínio do Microsoft Active Directory por uma conexão SSL criptografada, e todos os recursos do adtool estarão disponíveis (quadro 3).

Como usar o adtool para tarefas comuns Agora que temos uma implementação totalmente funcional da ferramenta adtool, é hora de explorar alguns dos seus recursos típicos para gerenciar um ambiente do Active Directory. Para listar os usuários em uma unidade organizacional, digite o seguinte comando: $ adtool list ou=user,dc=stanger,dc=com CN=allusers,OU=user,DC=stanger, DC=com OU=research,OU=user,DC=stanger,DC= com

www.linuxmagazine.com.br


OU=accounting,OU=user,DC=stanger,D C=com

O resultado será que veremos todos os usuários especificados na requisição. Para criar um novo usuário, digite o seguinte comando: $ adtool useradd jstanger ou=research,ou=user, dc=stanger,dc=com

Naturalmente, precisaremos definir uma senha para este usuário com: $ adtool setpass jstanger linuxpromagazinerules

Muitas vezes, um controlador de domínio será configurado para bloquear uma nova conta de usuário por padrão. Portanto, precisaremos desbloquear a conta deste usuário. O comando para isso é bastante simples: $ adtool unlock jstanger

Também pode ser necessário desbloquear contas de usuários existentes, seja porque o usuário excedeu o número de logins, ou por que o login do usuário ficou desativado por conta do limite de tempo. Suponha que este novo usuário precisa ser colocado em um novo grupo chamado phpdevelopers. Primeiro, devemos criar um grupo com este nome através do comando: $ adtool groupcreate phpdevelopers ou=user, cd=stangernet,dc=com

Para adicionar o usuário chamado jstanger a este novo grupo (phpdevelopers), execute:

$ adtool oucreate socialmediaexperts ou=user, dc=myldapserver.stangernet. com,dc=com

Para adicionar um usuário a todos os grupos: $ adtool groupadd allusers jstanger

Para adicionar detalhes sobre um usuário: $ adtool attributereplace jstanger telephonenumber 4138 $ adtool attributereplace jstanger mail jstanger@stangernet.com

Se quiser adicionar um endereço de e-mail para este usuário, entre com o comando: $ adtool attributereplace jstanger mail jstanger@stangernet.com

Para bloquear a conta de um usuário, execute o comando adtool userlock jstanger ou então exclua-o com o comando adtool userdelete jstanger.

Atualize cedo e com frequência Lembre-se, uma atualização de software para qualquer projeto pode causar problemas misteriosos: algo

pode aparecer – ou desaparecer. Então, se o usuário estiver enfrentando problemas com a ferramenta adtool, porém confiante de que quaisquer consultas e comandos estão usando a sintaxe apropriada, e se estiver convencido de que os servidores LDAP e Active Directory estão configurados corretamente, poderá simplesmente precisar usar uma versão diferente da ferramenta. A versão atual até o fechamento desta edição é a 1.3.3. Use esta versão a menos que uma versão mais antiga de alguma forma resolva quaisquer problemas de conexão que o usuário possa vir a ter.

Conclusão Temos agora um bom entendimento de como usar o adtool para administrar um controlador de domínio Microsoft. Usar a ferramenta através de uma conexão criptografada oferece a possibilidade de usar o sistema Linux de forma tão eficiente como em um sistema Windows. O adtool é uma ferramenta poderosa, e agora o usuário já conhece muitos dos comandos que permitem trabalhar e lidar bem com sistemas da Microsoft. ■

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

$ adtool groupadd phpdevelopers jstanger

Mais informações

Agora sabemos como listar grupos, bem como a forma de criar um usuário e adicionar um grupo.

[2] Debian “squeeze” admin packages: http://packages.debian.org/squeeze/admin/

Tarefas adicionais

[4] Splunk: http://www.splunk.com/

[1] adtool: http://gp2x.org/adtool/

Muitas vezes, teremos que criar uma nova unidade organizacional (OU). Para criar uma OU de nome socialmediaexperts, digitamos:

Linux Magazine #105 | Agosto de 2013

[3] adtool removida do teste: http://packages.qa.debian. org/a/adtool/news/20120313T163912Z.html [5] Open LDAP: http://www.openldap.org [6] TinyCA: http://www.sm-zone.net [7] TechNet em senhas: http://technet.microsoft.com/en-us/library/cc875814.aspx

61


Tutorial

Ubuntu Touch: o verdadeiro Linux de bolso Aprenda como instalar e configurar este novo sistema operacional em seu dispositivo Android. por Alessandro de Oliveira Faria (Cabelo)

C

om o acelerado desenvolvimento do sistema operacional da Canonical destinado à dispositivos móveis, tornou-se realmente possível utilizar o Linux de forma similar ao desktop, mas na palma da sua mão. Na visão deste autor, este projeto é ambicioso pelo fato de unificar as plataformas: deskto, notebooks, tablets, smartphones e TVs. Imagine ter instalado em seu tablet (um Nexus 7, no meu caso) uma distribuição Ubuntu Desktop 13.04! E com um bônus: múltiplos boots com outros sistemas operacionais. Neste artigo você vai aprender como instalar e configurar este novo sistema que pretende enfrentar a forte concorrência do mercado de smartphones. A Canonical é a responsável pela distribuição GNU/Linux Ubuntu, uma das mais populares para desktops. O motivo da sua popularidade é seu foco, voltado para usuários finais. Atualmente este sistema tem como objetivo penetrar em um novo mercado dominado pelo duopólio Android e iOS de sistemas móveis. Com objetivo similar ao sistema operacional FirefoxOS apresentado na Linux Magazine #96 [1], o Ubuntu Touch pretende explorar

o mercado móvel que encontrase em pleno crescimento. A tão polêmica interface gráfica Unity tem como principal objetivo não deixar que os usuários se percam, mantendo seu visual operacional em todas as plataformas. Muitos recursos do Ubuntu Touch são bem similares aos do desktop como a área de notificação que carrega diversas opções de configuração e ajustes. A compatibilidade e/ou suporte a aplicativos web (webapps) permite o rápido aprendizado para esta plataforma (similar ao FirefoxOS). Esta possibilidade atrai

até mesmo desenvolvedores com pouca experiência técnica. O recurso revolucionário, mas nem tanto assim (pois já conhecemos o WebTop Atrix e o Ubuntu for Android), é a capacidade de tornar o dispositivo móvel em um desktop Ubuntu. Vale a pena mencionar que o Ubuntu Touch e o Ubuntu Desktop são diferentes, entretanto ao conectar o aparelho em um dock, que por sua vez esta acoplado à um teclado, monitor e mouse, este torna-se o Ubuntu que já conhecemos, porém com uma integração na área de no-

Figura 1-a Ativação do modo de depuração do Android. 62

www.linuxmagazine.com.br


tificações para recebimento de ligações e mensagens. Outra vantagem é que o dispositivo móvel passará a contar com os aplicativos presentes no sistema GNU/Linux como GIMP, LibreOffice e outros. Embora o sistema não se encontre na versão final, já está funcional o bastante para permitir a criação de aplicativos para esta nova plataforma. Alguns aplicativos são falsos (pelo menos até o presente momento) e estão presentes por padrão no sistema apenas para cumprir a tarefa de marketing do sistema operacional (o que torna mais atraente investir nesta área de desenvolvimento). O guia de boas práticas para criação de interfaces de aplicativos [2] foi disponibilizado de forma similar ao Google (com o guia de boas práticas de desenvolvimento Android). Neste guia foram disponibilizados exemplos de construção de interface, botões e imagens que foram disponiblizadas para download, de forma que o desenvolvedor possa utilizá-las, o que é um enorme facilitador para os desenvolvedores que pretendem manter a identidade visual da interface. Sendo a interface Unity a identidade visual padrão utilizada atualmente nos produtos da Canonical, o usuário terá uma fácil adaptação seja no tablet, celular, desktop ou TV. Em meu ponto de vista este é um grande fator que levará as pessoas utilizarem mais a plataforma Linux no seu dia a dia. Agora é utilizado o QT/QML no lugar do Gnome 3 e o MIR tomará o lugar do servidor X. E, o mais importante: a empresa promete disponibilizar tudo como código aberto, beneficiando assim outras distribuições. Seu SDK (Software Development Kit ou Conjunto de ferramentas de desenvolvimento de software) também proporciona ao desenvolvedor facilidades para a criação de aplicativos para a pla-

Linux Magazine #105 | Agosto de 2013

taforma móvel ou desktop de maneira transparente. Teoricamente esta tecnologia será lançada a partir do segundo semestre de 2013. A mobilidade está mudando conceitos e acredito que agora realmente estamos entrando na plataforma pós-PC.

Instalação do sistema Antes de partir para a instalação, vale apena mencionar o hardware utilizado, um tablet Nexus 7. Os motivos são vários. Primeiro, trata-se de um tablet do Google (e fabricado pela ASUS), com um desempenho de fazer inveja (processador Nvidia Tegra 3 Quad-Core), resolução WXGA de 1280 x 800 pixels, suporte a multitoque (reconhecendo até dez dedos simultaneamente) e com bootloader destravado de fábrica. Para finalizar, o motivo mais convincente é que as primeiras imagens oficiais do Ubuntu Touch fornecidas pela Canonical foram criadas justamente para esta família de tablets. Claro que novos aparelhos serão compatíveis com o tempo graças ao esforço dos participantes no projeto.

O modo mais fácil

Iniciaremos pelo modo fácil de instalação, através da interface gráfica, cujo objetivo é demonstrar a facilidade de instalação para quem não deseja se aprofundar nos recônditos do assunto. Embora as imagens sejam homologadas pela Canonical, não somos responsáveis por danos causados ao equipamento. Sendo assim, o usuário está assumindo toda e qualquer responsabilidade no que tange ao não funcionamento deste. Para evitar confusão, vale a pena mencionar alguns detalhes para efeito de esclarecimento: ➧ Identifique o modelo do seu equipamento no link onde está presente a lista completa de dispositivos compa-

Figura 2 Dispositivo bloqueado.

tíveis [3]. Por exemplo, o celular Nexus 4 deve ser utilizado como codinome mako, o tablet Nexus 7 possui o codinome grouper e o Nexus 10, manta. ➧ Não faça confusão com as imagens. O Ubuntu desktop [4] é uma imagem para a plataforma ARM idêntica ao Ubuntu que é utilizado nos computadores convencionais. O Ubuntu Touch [5] é a imagem do novo sistema operacional para dispositivos móveis da Canonical projetados para equipamentos com interface touch-screen. ➧ Habilite o modo USB debug no seu positivo. Em aparelhos com Android 4.2.2 será necessário fazer isso através do menu Configurações/ Sobre o telefone e clicar 7 vezes no número da versão para disponibilizar esta opção no menu (figura 1). Sugiro utilizar o sistema operacional Ubuntu 12.04 ou superior para realizar a instalação no modo fácil. Atendendo a este requisito, abra o terminal, adicione e atualize o repositório: $ sudo add-apt-repository ppa:ubuntu-nexus7/ubuntu-nexus7installer $ sudo apt-get update

Informe a senha administrativa durante a execução dos comandos e aguarde. Após a execução de ambos os comandos, instalaremos o pacote ubuntu-nexus7-installer:

63


sudo apt-get install ubuntunexus7-installer

Desbloqueio do bootloader Desbloquear o bootloader é preciso? Para saber a necessidade de desbloqueio do bootloader, desligue e ligue o equipamento e pressione por alguns segundos as teclas “Power” e “Volume Down”. Se tudo estiver funcionando corretamente, será exibida a tela do bootloader algumas informações e na última linha uma string “LOCK STATE – LOCKED” (figura 2), obviamente se aparecer a string “LOCK STATE – UNLOCKED” seu aparelho está desbloqueado. Vale a pena mencionar que a combinação de teclas para entrar no bootloader varia de equipamento para equipamento, então consulte quais teclas são necessárias para obter o mesmo resultado. Se o equipamento estiver com o bootloader bloqueado, conecte o cabo USB e execute o comando sudo fastboot device para constatar que o seu aparelho está em comunicação com o computador. Em seguida execute o comando sudo fastboot oem unlock e confirme o termo de desbloqueio exibido

Figura 4 Dispositivo após o desbloqueio.

(figura 3). Confira o estado do dispositivo, entrando novamente no modo bootloader e confirme que a string “LOCK STATE – UNLOCKED” é exibida (figura 4). Nesta etapa basta digitar o comando sudo fastboot reboot-bootloader para reiniciar o dispositivo.: $ sudo fastboot devices 015d3b65d3481814fastboot $ sudo fastboot oem unlock ... (bootloader) erasing userdata... (bootloader) erasing userdata done (bootloader) erasing cache... (bootloader) erasing cache done (bootloader) unlocking... (bootloader) Bootloader is unlocked now. OKAY [ 90.093s] finished. total time: 90.093s $ sudo fastboot reboot-bootloader

Agora que o equipamento está preparado para receber novas imagens, volte ao computador no qual foi instalado o ubuntu-nexus7-installer e execute-o na linha de comando ou através da interface gráfica (figura 5). Ao iniciar pela primeira vez, o programa solicitará que seja aceito o termo de licenciamento para uso não comercial e solicitará a ativação do modo bootloader. Teoricamente, se você seguiu os procedimentos anteriores, o equipamento já Figura 3 O sistema pede a confirmação de que desejamos desbloquear o aparelho.

64

encontra-se neste estado, então, basta pressionar o botão Yes e ir tomar um café dependendo da velocidade da sua Internet (eu fui!) e deixe tudo na mão do instalador, pois ele faz tudo sozinho. Após o término da instalação, basta reiniciar o equipamento. O primeiro boot demora um pouco e não se assuste, pois depois de alguns minutos a tela de configuração do Ubuntu Touch será exibida (figura 6). Meu equipamento funcionou muito bem, ainda mais depois que utilizei um adaptador micro-USB para conectar o teclado e mouse. Atualmente meu Nexus 7 virou um Linux de bolso para emergências.

E se algo der errado?

Existem vários motivos pelos quais o usuário pode desejar retornar seu equipamento para o estado original de fábrica, seja para solicitar o serviço de garantia ou então porque algo não saiu como o planejado. Seja qual for o motivo não entre em pânico, pegue outro café e vamos lá. Faça o download da imagem original do equipamento – no caso da linha Nexus, basta acessar o link [6]. Fique atento, pois para determinados modelos de dispositivos existe mais de uma versão da imagem. Por exemplo, se o que

www.linuxmagazine.com.br


Adicione os repositório a seguir e instale alguns pacotes para efetuar a instalação manual do Ubuntu Touch. $ sudo add-apt-repository ppa:phablet-team/tools $ sudo apt-get update

Figura 5 instalador gráfico Ubuntu para Nexus 7.

equipamento originalmente possuía o Android 4.1.2 instalado, faça o download desta versão. No meu caso utilizei a imagem “Factory Images nakasi for Nexus 7 (Wi-Fi)” com Android 4.2.2 (JDQ39), presente no link [7]. Após o download conecte o dispositivo no computador com o cabo USB e entre no bootloader novamente. Descompacte o arquivo, entre na pasta recém-criada e execute o script flash-all.sh como usuário root (e vá tomar outro café...). Agora que o seu dispositivo encontra-se com a imagem original, basta bloqueá-lo novamente. Entre no modo bootloader e digite: $ sudo fastboot oem lock

Pronto, agora seu equipamento está exatamente como saiu da fábrica.

Instalação em modo console

Para fundamentar o conceito de instalação do Ubuntu Touch, faremos isso no modo console. Caso tenha instalado o Ubuntu Desktop em seu dispositivo, os repositórios mencionados anteriormente foram adicionado ao seu computador. Sendo assim, vamos removê-lo. Caso não tenha instalado desconsidere o comando a seguir: $ sudo add-apt-repository --remove ppa:ubuntu-nexus7/ubuntunexus7-installer

Linux Magazine #105 | Agosto de 2013

Com o repositório devidamente adicionado e atualizado, instale os pacotes phablet-tools, android-tools-adb e android-tools-fastboot: $ sudo apt-get install phablettools android-tools-adb androidtools-fastboot

Embora pareça assustador fazer a instalação no modo console, é mais simples do que você imagina, pois o aplicativo phablet-flash detecta o modelo do seu equipamento, faz o download, grava a flash e tudo mais. Para isto, basta executar o comando a seguir, responder “Yes” para o termo de licenciamento e deixar que ocorra a detecção do modelo do dispositivo e todo o restante estará feito.

Múltiplas imagens em seu dispositivo

Imagine que você deseja ter mais de um sistema instalado em seu dispositivo. Gosto do Android 4.2.2 mas também quero explorar o Ubuntu Touch. Para resolver esta situação, existe a ferramenta MultiROM, uma solução exclusivamente criada para o Nexus 7 (até o presente momento), portanto só funciona neste modelo. Como a ferramenta precisa de acesso root, esse é nosso ponto de partida.

gem de fábrica. Ou seja, nenhum procedimento mencionado até aqui foi executado (ou então seu dispositivo foi restaurado ao estado original conforme mencionei anteriormente). Vale a pena ressaltar que, embora o MultiROM funcione apenas no Nexus 7, os procedimentos para obter acesso root no aparelho funciona em diversos modelos. Se nenhum repositório foi adicionado ao seu computador, execute os comandos a seguir para instalar o fastboot e o adb. $ sudo add-apt-repository ppa:phablet-team/tools $ sudo apt-get update $ sudo apt-get install androidtools-adb android-tools-fastboot

Para instalar e obter o acesso root, vamos gravar uma nova imagem do boot recovery (recuperação de boot). Tome o cuidado de verificar se a imagem de download é correspondente ao modelo do seu equipamento, pois se for gravada uma imagem errada, o menu de recuperação do boot pode não funcionar. Veja os exemplos a seguir com as imagens que utilizei. Ressalto que versões diferentes não funcionaram, então consulte os links de referência no final do artigo, pois em função das atualizações e outras variáveis, algumas alterações podem ocorrer. Para o Nexus 10 com Android 4.2.2:

Acesso ao modo root

Para obter acesso root ao dispositivo, vou partir do princípio de que seu equipamento está com a imaFigura 6 Instalação do Ubuntu em andamento no dispositivo.

65


➧ Instalação do Ubuntu Touch; ➧ Instalação do Ubuntu Desktop.

Comece efetuando o download dos aquivos multirom_vX_nY-signed. zip, TWRP_multirom_n7_YYYMMDD.img (Team Win Recovery Project) para MultiROM e kernel_exec (Android 4.1.2 ou 4.2.2) do link [8]. Copie os arquivos (kernel_exec e multirom) para o diretório /sdcard e volte novamente ao bootloader com os comandos: Figura 7 Instalação de arquivos adicionais para MultiROM. recovery-clockwork-6.0.3.0-mako. img (ou superior) recovery-clockwork-touch-6.0.3.0-mako.img (ou superior)

Para o Nexus 7 com Android 4.2.2:

recovery-clockwork-6.0.2.3-grouper .img (ou superior) recovery-clockwork-touch-6.0.2.3-grouper .img (ou superior)

Para o Nexus 10 com Android 4.2.2:

recovery-clockwork-6.0.3.1-manta.img recovery-clockwork-touch-6.0.3.1-manta.img

A diferença das imagens que possuem o sufixo “touch”, é a possi-

Figura 8 O assistente de instalação do MultiROM auxilia nas principais tarefas.

66

bilidade de navegar através das opções utilizando a tela touch-screen e não somente as teclas de volume. Após o download da respectiva imagem do seu equipamento, entre no modo bootloader (utilize o comando adb reboot -bootloader) é bem mais prático do que pressionar a combinação de teclas já explicada anteriormente. A seguir escreva na flash a nova imagem do recovery e finalize reiniciando o dispositivo. # adb reboot -bootloader # fastboot flash recovery ecovery-clockwork-touch6.0.2.3-grouper.img # fastboot reboot

De posse da nova imagem de recuperação no bootloader, obtenha na Internet o arquivo UPDATE-SuperSU-vX.YY e o copie-o para o diretório /sdcard/, reinicie o equipamento novamente no modo bootloader e nesta selecione a opção Recovery mode. No Menu, selecione a opção “flash zip from sdcard” escolha “choose zip from sdcard” e selecione “Yes – Install UPDATE-SuperSU-vX.YY.zip” (figura 7). Para finalizar, depois da instalação entre na opção “+++++Go Back” e reinicie o dispositivo. Agora o Nexus 7 está preparado para receber o MultiROM. O procedimento a seguir resume-se à: ➧ Instalação da imagem de recuperação com a interface gráfica MultiROM (TWRP_multirom); ➧ Instalação do MultiROM (arquivo multirom_v10_n7-signed.zip);

# adb push TWRP_multirom_ n7_20130409.img /sdcard/ # adb push multirom_v10_n7-signed. zip /sdcard/ # adb push kernel_kexec_422.zip /sdcard/ # adb reboot bootloader

Agora grave na memória flash a nova imagem gŕafica de recuperação e retorne ao modo de recuperação: # fastboot flash recovery TWRP_ multirom_nX_YYYYMMDD.img

Para finalizar a instalação do MultiROM, entre no modo “Recovery mode” instale o kernel_kexec.zip e multirom_vX_nY-signed.zip copiado para o diretório /sdcard anteriormente, selecionando a opção Install no novo menu gráfico (figura 8) selecionando o arquivo em seguida. Neste momento o processo de MultiROM está instalado e funcionado. Esta última operação é necessária para não compartilhar o kernel do Android com o Ubuntu que instalaremos logo a seguir.

Instalação da imagem do Ubuntu Touch Baixe a imagem da última versão do Ubuntu Touch (arquivos quantal-preinstalled-armel+grouper. zip e quantal-preinstalled-phablet-armhf.zip) reinicie o equipamen-

to e entre no modo recovery. No menu gráfico selecione Advanced/ MultiROM/Add ROM.

www.linuxmagazine.com.br


Altere as opções para: Choose ROM type: Android/Ubuntu touch (Tipo de ROM “Android/Ubuntu touch”), Share kernel with Internal ROM: Don't share (Kernel não compartilhado) e escolha o local de instalação. Para finalizar, clique em Next e selecione a opção “ZIP file”, selecione o arquivo quantalpreinstalled-armel+grouper.zip, aguarde o término da operação e selecione a opção “Reboot System”. Agora instalaremos os dados selecionando no menu principal a opção Advanced/MultiROM/List ROMs e selecione o item recém-instalado (quantal-preinstalled-armel+) e depois Flash ZIP selecionando o arquivo quantal-preinstalled-phablet-armhf.zip. Reinicie o sistema quando tudo estiver finalizado. Atenção: durante o período de elaboração deste artigo, utilizei a versão Quantal do Ubuntu, que posteriormente será substituída pela versão Raring. O procedimento seguirá inalterado, sendo necessária apenas a troca dos nomes das imagens para raring-preinstalled-armel+grouper.zip e raring-preinstalled-phablet-armhf.zip.

Instalação da imagem do Ubuntu Desktop

Baixe a imagem da última versão do Ubuntu Desktop (arquivo raring-preinstalled-desktop-armhf+nexus7.img. gz), reinicie o equipamento e entre no

modo recovery. No menu gráfico selecione Advanced/MultiROM/Add ROM. Altere as opções para: Choose ROM type: Ubuntu desktop (Tipo de ROM “Ubuntu desktop”) e escolha o local de instalação. Clique em Next e selecione o arquivo de imagem (.img.gz). Aguarde a operação e ao seu término selecione a opção “Reboot System”. Tudo concluído, agora seu dispositivo poderá iniciar através de diversos sistemas operacionais (figura 9). Para aumentar o entusiamos dos leitores, veja um video demonstra-

Figura 9 Inicialização do aparelho com múltiplos sistemas operacionais.

tivo do sistema em funcionamento no endereço [9]. Na próxima edição, vamos abordar o tema desenvolvimento para Ubuntu Touch. Até lá! n

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

O autor Alessandro de Oliveira Faria (Cabelo) é sócio-fundador da empresa NETi Tecnologia fundada em 1996, empresa especializada em desenvolvimento de software e soluções biométricas. é consultor biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986, levando o Linux a sério desde 1998, membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca open-source de vídeo captura, embaixador e membro openSUSE entre outros projetos.

Mais informações [1] FirefoxOS – Linux Magazine #96, novembro de 2012, página 58. [2] Guia de design para interfaces de aplicativos no Ubuntu: http://design.ubuntu.com/apps [3] Lista de dispositivos compatíveis: https://wiki.ubuntu.com/Touch/Devices [4] Imagem do Ubuntu desktop: http://cdimage.ubuntu.com/daily-preinstalled/current/ [5] Imagem do Ubuntu Touch: http://cdimage.ubuntu.com/ubuntu-touch-preview/daily-preinstalled/current/ [6] Imagens do Google Nexus: https://developers.google.com/android/nexus/images [7] Imagem do Nexus 7 utilizada: https://dl.google.com/dl/android/aosp/nakasi-jdq39-factory-c317339e.tgz [8] Arquivos para instalação do MultiROM: http://forum.xda-developers.com/showthread.php?p=34577851 [9] Video de demonstração do Ubuntu Touch no Nexus 7: https://www.youtube.com/watch?v=cMjr97RdYqM

Linux Magazine #105 | Agosto de 2013

67


Serviços Calendário de eventos Evento

Front in BH

PGBR 2013

CloudConf

Data

03 de agosto

15 a 17 de agosto

2 e 3 de outubro

Índice de anunciantes Local

Informações

Belo Horizonte, MG

Porto Velho, RO

São Paulo, SP

Empresa

Pág.

Supermicro

02

Unodata

09

Impacta

13

http://www.frontinbh.com.br/

http://pgbr.postgresql.org.br

Plus Server

20, 21

Central Server

29

Watchguard

83

IBM

84

http://www.cloudconf.com.br/

Agora você tem o controle sobre o desempenho do seu negócio sempre à sua mão.

Solução completa hospedada em nuvem (Cloud Computing)

SOFTWARE

80

Saiba mais em: www.vectory.com.br +55 11 3104 6652

A solução de gestão integrada ADempiere é um poderoso sistema ERP, CRM e SCM de Código Aberto, que conta com um conjunto completo de recursos, organizados através de processos de negócios. Essa organização resulta em uma plataforma única, totalmente integrada e consistente, proporcionando aos usuários uma visão integral de sua empresa e permitindo uma análise em 360 graus de todo o relacionamento com clientes, fornecedores e colaboradores. www.linuxmagazine.com.br


Agora você tem o controle sobre o desempenho do seu negócio sempre à sua mão. Compras

Finanças

Estoques

NF-e

Vendas Fornecedores Clientes

ERP – SISTEMA DE GESTÃO

Solução completa hospedada em nuvem (Cloud Computing)

A micro e pequena empresa ganha uma solução de classe mundial de sistemas de gestão ERP no modelo comercial com a melhor relação custo/benefício. O Kontroller dispensa aquisição de hardware, licenças de software, técnicos de suporte ou sistema de backup. Garante alta disponibilidade e oferece fácil acesso via browser.

Saiba mais em: www.vectory.com.br +55 11 3104 6652

SOFTWARE


Preview

Linux Magazine #106 Criptografia Assunto de interesse geral, e a cada dia mais importante, em tempos de espionagem digital, a criptografia em sua mais variadas abordagens será o tema da próxima edição da Linux Magazine. Você vai conhecer o universo dos sistemas de arquivos ZFS criptografados, aprender como trabalhar com assinaturas digitais e ate mesmo a criptografar conversas telefônicas! Conheça ainda formas de trafegar arquivos de maneira segura através de túneis criptografados e muito mais! Seja o ninja da criptografia e não perca! n

Admin Magazine #10 OpenStack

Capaz de gerênciar os componentes de múltiplas instâncias virtualizadas, o OpenStack é um dos queridinhos dos profissionais de infraestrutura e virtualização da atualidade. É livre, não possui restrições quanto à quantidade de instâncias e é uma plataforma robusta, extremamente útil nestes tempos onde o advento da computação em nuvem já é uma realidade. Na próxima edição da Admin Magazine você vai conhecer tudo o que essa incrível ferramenta pode fazer por você! Não perca! n

82

www.linuxmagazine.com.br


Você é refém da Operadora de Telecom? Altos custos de conectividade impedem sua empresa de ter links redundantes.

Não pule no vazio! Achar que a segurança é simples é o começo de seus problemas!

Alugue um Firewall gerenciado a partir de R$ 300,00/mês.

É um erro, total e comum, achar que qualquer um na sua TI pode fazer gestão de segurança da sua rede!

Controle de Conteúdo e Antivírus, Soluções Antispam, implementadas localmente ou na nuvem, Proteção de Invasões e Ataques, Balanceamento de Links e Servidores, Análise de Vulnerabilidades e Riscos, Conectividade entre Sites, Fornecedores, etc. Conectividade Segura para Usuários Móveis, Otimização de Links, Controle de Navegação, Controle de Aplicações,

vendas@altermedios.com.br

(11) 3393.3340


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.