Iniciativa
Expediente editorial Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br
Kemel Zaidan kzaidan@linuxmagazine.com.br Editora de Arte Larissa Lima Zanini llima@linuxmagazine.com.br EstagiĂĄrio Felipe Brumatti Sentelhas fsentelhas@linuxmagazine.com.br Colaboradores Alexandre Borges, Alexandre Santos, Augusto Campos, Caspar Clemens Mierau, Charly KĂźhnast, Dmitri Popov, Eva-Katharina Kunst, Florian Effenberger, Guilherme Chehab, Henry Nestler, Jon ‘maddog’ Hall, Juliet Kemp, JĂźrgen Quade, Klaus Knopper, Konstantin Agouros, Kurt Seifried, Thomas Drilling, Zack Brown. Tradução Emerson Satomi, Kemel Zaidan, Luciano Hagge, Rodrigo Garcia. RevisĂŁo Cristiana Ferraz Coimbra. Editores internacionais Uli Bantle, Andreas Bohle, Jens-Christoph Brendel, Hans-Georg EĂ&#x;er, Markus Feilner, Oliver Frommel, Marcel Hilzinger, Mathias Huber, Anika Kehrer, Kristian KiĂ&#x;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 - 2012: Linux New Media do Brasil Editora Ltda. ImpressĂŁo e Acabamento: RR Donnelley DistribuĂda em todo o paĂs pela Dinap S.A., Distribuidora Nacional de Publicaçþes, SĂŁo Paulo. 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 #88 | Março de 2012
Reza a lenda que, no inĂcio do terceiro milĂŞnio, uma famosa instituição de anĂĄlise de crĂŠdito nacional estava tendo problemas de instabilidade em seus servidores (proprietĂĄrios), que detinham um gigantesco banco de dados de cadastros de inadimplentes. Um dos tĂŠcnicos da equipe Ă ĂŠpoca, apĂłs minuciosa anĂĄlise das falhas recorrentes que acometiam os servidores, recomendou que se trocasse o sistema operacional da mĂĄquina em questĂŁo para GNU/Linux e que esta fosse equipada com um banco de dados corporativo homologado para a plataforma. Isso seria suficiente para tornar o ambiente de produção estĂĄvel novamente. Dizem as mĂĄs lĂnguas que esse tĂŠcnico se tornou objeto do escĂĄrnio de seus colegas e que seu prĂłprio gerente ridicularizou tal sugestĂŁo. Entretanto, os problemas continuavam e todas as soluçþes se mostravam meros paliativos. A cada chamada de suporte realizada, mais dinheiro escoava pelo ralo da empresa detentora do sistema operacional proprietĂĄrio que equipava os servidores. O tĂŠcnico que havia feito a entĂŁo famigerada sugestĂŁo, que doravante chamarei de “nosso herĂłiâ€?, observava incĂłlume as tentativas infrutĂferas de se resolver o problema, tentando ajudar como podia, mesmo contrariado em face do menosprezo de que fora vĂtima atĂŠ aquele momento. Entretanto, um belo dia, ao final do expediente de uma sexta-feira vĂŠspera de feriado prolongado, sem que houvesse ainda solução para o problema, nosso herĂłi tomou finalmente para si a tarefa de resolver a situação, custasse o que custasse, e, trabalhando por dias a fio durante o fim de semana e o feriado que se seguia, sem que ninguĂŠm soubesse, migrou silenciosamente todos os sistemas acometidos pelos problemas de instabilidade para serviços similares funcionando no GNU/Linux. Quando seus colegas retornaram do feriado, ninguĂŠm notou nada: tudo estava funcionando a contento. AliĂĄs, apĂłs vĂĄrios dias, o gerente do nosso herĂłi comentou com a equipe que as Ăşltimas alteraçþes realizadas pela empresa detentora dos sistemas proprietĂĄrios havia finalmente resolvido o problema, pois os servidores estavam funcionando de maneira estĂĄvel. Apenas nesse momento, nosso herĂłi se pronunciou e contou o que havia feito, dizendo que esse era o real motivo pelo qual a atual situação dos serviços era estĂĄvel. A partir desse episĂłdio, o GNU/Linux passou a ser levado a sĂŠrio naquela instituição, e acabou se tornando o sistema operacional padrĂŁo da empresa posteriormente. NĂŁo sei bem se foi exatamente assim que tudo aconteceu, mas foi o prĂłprio gerente de TI daquela empresa quem me contou essa histĂłria, hĂĄ mais ou menos oito anos. Ela ilustra como a iniciativa e a convicção de um Ăşnico profissional que detenha pleno domĂnio de uma tecnologia podem fazer a diferença e modificar o padrĂŁo tecnolĂłgico de uma empresa com mais de 5 mil funcionĂĄrios. E quando digo “pleno domĂnioâ€?, tambĂŠm quero dizer “pleno acesso ao cĂłdigoâ€?. Nosso herĂłi assumiu um risco grande, com certeza, mas sua convicção se assentava nos ombros de gigantes: Richard Stallman, Linus Torvalds, Alan Cox, Arnaldo Carvalho de Melo, Marcelo Tosatti e os incontĂĄveis desenvolvedores anĂ´nimos do Software Livre. Ah! Antes que eu me esqueça: nosso herĂłi foi longe, vindo a assumir mais tarde posiçþes de gerĂŞncia e diretoria. VocĂŞ tambĂŠm pode. â–
EDITORIAL
Editores FlĂĄvia Jobstraibizer fjobs@linuxmagazine.com.br
Rafael Peregrino da Silva Diretor de Redação 3
ÍNDICE
CAPA Um mistura de tudo
25
A convivência harmoniosa de diversos sistemas operacionais em uma mesma rede, é possível?
Outros ritmos
26
Você não precisa dançar um Samba para fazer com que seus sistemas se comuniquem uns com os outros.
Linux no Mac
32
Agora que o hardware Apple tornou-se acessível e possui processadores Intel em seu núcleo, os fãs do software livre podem usar o atraente invólucro da Apple para algo mais do que apenas o OS X.
Lado a Lado
40
O Cooperative Linux oferece uma alternativa interessante para executar o Linux em um sistema Windows – sem a necessidade de virtualização.
4
www.linuxmagazine.com.br
Linux Magazine 88 | ÍNDICE
TUTORIAL
COLUNAS Charly Kühnast
07
Klaus Knopper
08
Augusto Campos
10
Alexandre Borges
12
Kurt Seifried
14
Zack Brown
16
Mala direta peso pesado
65
Relativamente desconhecido, o Mlmmj é uma alternativa interessante de gerenciamento de mala direta, assim como o Mailman. Sistema enlatado
70
NOTÍCIAS Geral
17
➧ Um apelo contra o Webkit ➧ Ambiente de desenvolvimento para Lua O LXC cria contêineres de sistemas que permitem a administradores isolar serviços críticos e de segurança. Aprenda como configurar um sistema dentro do contâiner.
CORPORATE Notícias
20
➧ O novo Ubuntu para o mercado corporativo ➧ Suporte comercial para NGINX
ANÁLISE Trabalho colaborativo
➧ O fim da validação online de certificados
54
Se você quer usar o UCS como alicerce para o Zarafa, vai gostar do bom trabalho que um dos parceiros da Univention fez ao criar o pacote de integração Zarafa4ucs.
➧ Cisco, Intelbras e a telefonia IP no Brasil Coluna: Jon “maddog” Hall
22
Coluna: Alexandre Santos
24
Máquina de fumaça
62
ANDROID Automágico
44
O Fog é uma ferramenta de clonagem que cria e gerencia imagens de disco e ajuda a implantá-las por toda uma rede de PCs.
Telefones inteligentes facilitam a nossa vida em um sem número de situações. E se você puder obter alguma ajuda externa, melhor ainda. Conheça o AutomateIt, aplicativo que faz todo o trabalho que você, de outra maneira, teria que realizar repetitivamente.
PROGRAMAÇÃO Mudança rápida!
49
SEGURANÇA Segurança via túnel
74
O RVM torna o gerenciamento de múltiplos interpretadores Ruby, versões e gems mais ou menos como brincadeira de criança.
SERVIÇOS Manter conexões à prova de sniffers é uma boa ideia se você acessa dados privados em redes públicas. O Sshuttle e o PuTTY o ajudam a criar uma conexão segura com pré-configuração mínima.
Linux Magazine #88 | Março de 2012
Editorial
03
Emails
06
Linux.local
78
Preview
82
5
Coluna do Alexandre Borges
COLUNA
Criptografia – algoritmos Conheça os principais algoritmos de criptografia simétricas e assimétricas e esteja preparado para proteger-se sempre que necessário!
E
nfim, chegamos à penúltima série de colunas sobre criptografia (e não última, como eu havia dito antes, pois percebi que poderia contar muito mais do que este espaço permite) nas quais tenho exposto um conjunto de conceitos simples, porém muito importantes para o leitor que deseja aprofundar-se no assunto. No início, analisamos de maneira introdutória o conjunto de conceitos que abrange criptografia simétrica, assimétrica, certificação digital e assinatura digital, entretanto de maneira proposital evitei expor quais são os algoritmos usados e suas respectivas características. Esta é nossa meta aqui. Criptografia simétrica, como exemplifiquei antes, é usada para codificar a sessão de uma comunicação segura. Exemplos de algoritmos envolvidos estão DES [1], com chave de 56 bits (na verdade, a chave tem 64 bits, mas um bit usado para paridade é descartado) baseado no trabalho de Harst Feistal que já foi o algoritmo padrão americano (com início em 1977). O DES opera com entradas cujo bloco é 64 bits e as saídas já codificadas também são compostas de blocos de 64 bits. Outro algoritmo interessante e derivado do DES é o 3DES que embora use uma chave de 168 bits, tem uma força de chave efetiva de 112 bits [2]. A partir de 1997, com a solicitação americana (do NIST) por um novo algoritmo de codificação simétrica mais seguro, o vencedor foi o AES (baseado no Rijndael criado pelo Dr. Vicent Rijmen e pelo Dr. Joal Daemon) [3], com chaves de 128, 192 e 256 bits, o qual serve como base para algoritmos como o CCMP usado no padrão 802.11i de redes sem fio, com chaves de 128 bits e processamento de blocos de 128 bits. Outra ótima opção ao DES (que, como vimos, não foi escolhida) foi o algoritmo IDEA (International Data Encrypt Algorithm) com chave de 128 bits e operando em blocos de 64 bits, cuja patente expirou em 2010. O CAST (criado por Stafford Tavares e Carlisle Adams) também é atraente e usa chaves de 40 à 128 bits, operando em blocos de 64
12
bits e que teve uma versão mais poderosa (CAST 256, que opera sobre blocos de 128 bits com chaves de 128, 192, 224 e 256 bits) concorrendo ao padrão americano. Estes últimos são usados no PGP [4]. Mais um algoritmo com suas boas qualidades e que tem uma variação usada na comunicação Bluetooth é o SAFER (Securre And Fast Encryption Routine) [5] [6]. Embora não seja um padrão, o Blowfish é um excelente algoritmo (chaves de 32 à 448 bits, com blocos de entrada e saída de 64 bits) desenvolvido por Bruce Schneier [7]. Como seu derivado temos o TwoFish (chaves de 128, 192 e 256 bits). Não menos importante, tem-se o RC4 com chaves que chegam até 2048 bits (normalmente de 128 bits, todavia já dá para perceber que ele impõe sérias dificuldades para quem desejar quebrá-lo) e que foi desenvolvido por Ron Rivest. Deste RC4 há a evolução para o RC5 (com chaves de até 2040 bits) e que é bem definido na RFC 2040 [8]. Mudando para criptografia assimétrica (usada para a troca de chaves simétricas), há o RSA que se baseia na fatoração de dois números primos extensos, com chaves mais comuns de 512, 1024, 2048, 3072 bits e 4096 bits. Nos dias de hoje, 512 bits não é mais recomendado, existe uma orientação para usar chaves de 1024 bits até no máximo o ano de 2019 e ainda sabe-se, através do NIST, que uma chave de 15360 bits é equivalente à uma chave simétrica de 256 bits [9]. O RSA foi desenvolvido por Ron Rivest, Adi Shamir e Len Adleman. Se possível, não deixe de visitar os sites que mostram exemplos simples de como é realizado o processo de codificação com números primos no RSA [10] [11]. É conveniente ressaltar que o RSA é suscetível à ataques de força bruta, ataques matemáticos (justamente por conta da fatoração) e ataques baseados em tempo explorando seu tempo de decodificação. Provavelmente o leitor também já tenha ouvido falar do algoritmo Diffie-Hellmann (usado para troca de chaves e não para a confidencialidade em si), no El-Gamal
www.linuxmagazine.com.br
(que é derivado do Diffie-Hellmann) o qual, além da troca de chaves de sessão, também proporciona serviços de assinatura digital. Por fim, com extrema relevância nos dias de hoje, existe o ECC (Elliptic Curve Cryptography) [12] [13] com chaves variando de 160 bits até 521 bits, onde seu conceito é baseado na matemática de curvas elípticas. Atualmente o ECC é muito usado em redes wireless, smart cards e outros dispositivos portáteis por oferecer ótima velocidade e força de codificação, além dos serviços de autenticação, assinatura digital e, claro, confidencialidade. Sempre que escrevo algo, o maior objetivo é informar e motivar. Se consigo isto, já tenho como atingido meu objetivo. Até o mês que vem. ■ Alexandre Borges (alex_sun@terra.com.br) é instrutor independente e ministra regularmente treinamentos de tecnologia Oracle (áreas de Solaris, LDAP, Cluster, Containers/OracleVM, MySQL, e Hardware), Symantec (Netbackup, Veritas Cluster,Backup Exec, Storage Foundation e SEP) e EC-Council (CEH e CHFI), além de estar sempre envolvido com assuntos relacionados ao kernel Linux.
Linux Magazine #88 | Março de 2012
Mais informações [1] DES: http://csrc.nist.gov/publications/ fips/fips46-3/fips46-3.pdf [2] Recomendações para o algoritmo: http://csrc.nist. gov/publications/nistpubs/800-67/SP800-67.pdf [3] AES: http://csrc.nist.gov/publications/ fips/fips197/fips-197.pdf [4] Produtos PGP da Symantec: http://www.symantec. com/pt/br/theme.jsp?themeid=pgp [5] SAFER: http://en.wikipedia.org/wiki/SAFER [6] Guia da Segurança Bluetooth: http://csrc.nist.gov/ publications/nistpubs/800-121/SP800-121.pdf [7] Blowfish: http://www.schneier.com/paper-blowfish-fse.html [8] Algoritmos de criptografia RC5, RC5-CBC, RC5-CBC-Pad e RC5-CTS: http://www.ietf.org/rfc/rfc2040.txt [9] Recomendação para o gerenciamento de chaves criptográficas: http://csrc.nist.gov/publications/nistpubs/800-57/ sp800-57-Part1-revised2_Mar08-2007.pdf [10] PKCS #7: Sintaxe: http://www.rsa.com/rsalabs/node.asp?id=2213 [11] Algoritmo RSA: http://www.di-mgt.com.au/rsa_alg.html [12] ECC: http://en.wikipedia.org/wiki/Elliptic_curve_cryptography [13] Case sobre ECC: http://www.nsa.gov/business/ programs/elliptic_curve.shtml
13
Redes mistas
CAPA
Um mistura de tudo A convivência harmoniosa de diversos sistemas operacionais em uma mesma rede, é possível? por Flávia Jobstraibizer
S
e você é mais um dos milhares de usuários ou administradores de redes mistas, nas quais é necessária a convivência harmoniosa de diversos sistemas operacionais, bem-vindo a esta edição da Linux Magazine! Não é de hoje que, durante as pausas para o café, a conversa dos administradores de redes acabe sempre em “problemas com a compatibilidade entre sistemas”. É sabido que, em redes onde os usuários de sistemas Windows precisam acessar dados e arquivos de uma rede Linux ou mesmo de computadores Mac OS X – ou quem sabe de outros sistemas diversos como Solaris, FreeBSD etc. – é necessário criar uma camada de compatibilidade de forma que, independentemente do sistema que o usuário esteja utilizando, seja possível ter acesso a seus arquivos de forma transparente e o menos problemática possível. É claro que alguns problemas como a nomenclatura de arquivos e incompatibilidade de codificação, ainda existem, mas mesmo assim, podem ser resolvidos através de interfaces que possuem camadas de compatibilidade. Para o usuário, pouco importa, na verdade, o sistema que está utilizando ou que é necessário acessar.
O que ele precisa é de acesso garantido aos dados de que necessita. Sendo assim, é tarefa do administrador garantir que isso aconteça. Nesta edição, você vai conhecer formas de comunicar seus sistemas Linux, Windows ou Mac OS X uns com os outros da melhor forma possível, resolvendo possíveis problemas com o sistema de arquivos particular de cada sistema operacional e aproveitando – no que tange à compatibilidade – os melhores protocolos de compartilhamento de arquivos para que essa comunicação entre sistemas seja calma e pacífica. Aproveitando o mesmo assunto, imagine utilizar o poderoso hardware da Apple, mas utilizar neste hardware a distribuição Linux de sua preferência. Linus Torvalds é um dos adeptos desta prática e provou isso ao mostrar, durante a LinuxCon Brasil 2011, que possuía um MacBook Air, com SUSE Linux. Mas não é porque você não é o pai do Linux, que não pode fazer igual. Não deixe de conferir o artigo que irá ensiná-lo como fazer isso! Aproveite todas as facilidades que os sistemas de compatibilidade como Samba, AFP, Active Directory e outros, podem proporcionar a você e à sua estimada rede. Estamos juntos. E misturados. ■
Matérias de capa Outros ritmos
26
Linux no Mac
32
Lado a Lado
40
Linux Magazine #88 | Março de 2012
25
Em 2012 chega ao Brasil a maior revista alemã de informática e tecnologia
e 4S
Teste | iPhon
one te | iPh
4S
Tes
ne 4S
iPho Teste |
de sinível tes e os o ren tam dife o mes. Tes ações ena ente a ant ias situ exatam nov vár el faeu em nec possív a 14,4 nal perma no 4S. vez é 4S cosa one 4, mas suas ça ele no 4 e eira e em prim no iPh ren mo texto r a dife ssor. Pela nloads do iPhonepermanec qual pelo ece Tal e mesmo determina se ant uciosa zer dow o dobro upload de Mbit/s, e de a sair Nem de-se 4S e o min o eiro po one paraçã o o fato dad o primple com os tas re o iPh a com es com m alguns veloci foi Ap model , ent 4S s um detalh estare que faz da os de one 3GS Apena revelar volume baixo, o de proiPhone ricas don fáb adas mas os tir do iPh o ou do s pode tões de is para inhas feit per 5, par os bo tros ma umas cap mais geraçã alizado iOS á nas sa eira ra milímeque alg encaixem smo est caça ser atu a libe antigo terc me na car dimais touch de podem sistem mite se ça com o não per as tas ren do e iPod também O nov nes e feit teção . A dife as pre esquer rutura 1 e. linh o iTu es sejam iPad ament a est molados mente novas do dos idindo s gratuit arras com alizaçõ a acordo , dua mínio, res, div atu tra trêsário par a de alu as am uras rias Fi. fut traz, melho i- de o superio tes, con necess is um que ar”, via Wi- ema 200 de not reit tro par Isso foi de ma que sist ção defeito de“pelo novo , mais de ema ovado, em qua erior. stru o O ant um ple con o sist era ren uma uen nov delo dar a e rige a Ap peq segucom do um app Câm (tarefas) gra- acomo que cor 4 a um as: ao inte , neira, blic incluin s, um app bretes á agora antena o iPhoneções pú certa ma rede lem igo aa ou ficaçõelista de Ele est o ant rela elh al da one um lev . ui de esp de , o sin o iPh reuma virtual substit e faz o que sastre fone r, ca ge tele a antena . Com ças à a ind um ban Twitte iMessa permit a rar o do a o ralo is, gra import ao o ada pan ma lay, na do S pel o AirP conect está tam r ia par ntece s. Não recepde SM com a TV e o que em de- celula não aco antena relho, a os sa , isso cia de mento a, em umtament apa ram o nos 4S Ent . em poréma ure dân ra se vej TV, exa fone. dun se seg e intacta epção, idades A out o rec ado com Apple seu tele as nov iOS 5. tware com manec da do tela sobre ess al sobre o do sof a usuá- ção per lidade aument es A quanão ter talh a especi de do lad web par ou PCs, matéri novida serviço t, Macs s maté- parece grande ud, um er iGadge icamo iClo ded . lqu éo bém ção de qua rios o qual tam nessa edi para pletas com rias
O 4S one
Teste
| iPh
iCloud
iCloud
iCloud oéo ecentem do serviç bacana ente o pelo agen Outra parteFotos. Se ativad todas da está , na reda Contatos e comprom iCloud no que finalmen ção: “Min pode artilhar issos Com os endereços MacBoo PC casa, ha Essa opção no Comp o recurso faz com capturate igua no bém dos servidores io, 30 dias aplicativos. uer momento foi para compromis pa!” O k da editora. meu iPho lzinha e ou últimos tos e de ós- usuár ta do incorpor sos e contatos time ne e O iClo > Diagn da a qualq fotos dos ra do seu iPhon Fotos com o ado na da c’t iCloud. no soluto. Apple infelizment a ud é et as ser altera Geral > Sobre entr guro câme acontece e não é assim uma ncia de em seu iGadg a arqu Ele perm versão grat colega O que pod ou em silên supimtão generosa. Mas Outrora das pela ssim como a Apple lança à Sequê enados nos Ajustes, Depois disso o ite o ivos emo uiquem já criou iCloud umuma cio ab- Mac da X, sisteele tentrepresentant s dizer isitos: problem adicionadas dos e armaz conta no iCloud, sua casae pastas que acesso se- usado qua do seu Mac OS istivos tico e uso. o para usar! tado ao noss seja uma nova novos pré-requ e envia ado a apenas anos traz atualizada . Os dipos fotos, pretend ndo um estão os serv pront a part de ou sejam o ção r do escr Apple uma ironicam de vendas? da Apple migração versão todo iços estará l todos no dos exec ir do do MobileMe, itório, s ospode ores da O novo até 1000 serviço online de se val de e se enc grupo de truque de sincroni ente dize Teria com don cional móve ente com um facilmente encontrar Mac OS utivos, ago sem ontrar nublado amigos tam- servid armazenam não tem limite ma opera a com pu- exem música r que soluçõe criar um ano, sozinho os en- os de um os com iOS 5 ou nenhumvelho e que zação já almente e conteúdo da com iOS s com túnel ra um velh dereços dessese-mails, até Mac, iPho 2007, juntam plicae. Esse equipad ou PCs plo, sem em cam em um festi Parci eram ivos prop nome iPhon VPN servidores. Macs ndo desde dom dados a sisao o com disposit ósito, um iClo do? Afin novidad o con lo de O endene, iPad ou usar telefona ínios promisso mas os te migra reço para o servidor apenas a não o faz juz os entou o a nec po aberto, troca de enviar isso hecial, não era Snow ou iPod novo mode s para a essi . O recurs doo Mob e de abalud esa apres volvedores A de calendários por gradualmen O que a empres s, endereç nada de o obje rem deze Leopard não func dinâmicos. pessoais encontra-se em a empr touch: ter antigo .Mac ar ileM bém vêm USB com o iTune anos já algum ento, ou seja, nas de dade de iona A con tivo O desen . brincar nas nuvens. os e nota A App porém, ˜/Library/Catua se já perm e e até o munmais de end . Há podem alendars, leto aos ão via de fotos. ento. o mom seus lizad trole sejaiColou em um arquivo le trou X 10.7 capdo iCloud opodsto, vezes. Caso mes no o recu s em todo o rolo Ocu .plist que fica dentro os insta tema compantes do lançam empresa conex et – caso se queira contatos, caas fotos xe ao rso e mui ereços, com itiam e equ mo o algumas partes bast prom s, vídeos para Inov M ltar dos ch s ntaneam do diretório que s os seus ,a de todas egaou direta-o usuário é que tas outr iparação ou iPod Buscar meu iCloud prom usar o ete com da para Seguido três mese quinta versão além das intern el obter email s de contas começa issouma também backup açãoac ente. O Uma cópiaodeixa issos, 10.5. displava claro as cois imp s X touch). ou e OS iOS é envia sequência bizarra iPho co sério possív mui atravé ositi res. ção orta Mac favo é apena além: o Mas na nov onli as. Servine to mais mm com . “Nun vos nte foi de letras ritos O serv o serviço , mas Mas (ou iPad iOS. Até an ne de iO pen funcio S cu iOS 3 ou com rios e notas turadas ou IMAP. ir um passo , mas tam e termina compor Leonh e números iço de o nov a nuvem assim como uitas gratuito O iCloa pagar cemca achei que não, ele fa- permitindinclusive estendid mesmo com o teoce dispositieévos a extensãoard resolveu melhorias e novas concep- lendá eMe, Exchange Buscar iPhone, até e para localiza- , backup entã stao Becker .caldav. bém não uem a o que ão Wi-Fi, amAs o novid o sso funcion da ud é entã dólares fotos valesse que O endereço para e Ole Mein Mobil os ment conex com men inúmeras que vão desde máq , que prec respr,ons deixa de nais como que App le ações r todos com o aos a res cidos ou com está A conta de ee-mail ers mável pelo com uma er novas fotos. Fotos no ades os (d DAV fica escondido o servidor Cardisso.” m il do iCloud pode roubado putadore Macs, um uinaes ter suas com é gratuito o supimpapor a de notific ce, o ços adicioilidade de apaga e a sincrodotá nalidades, a ser as alg ser visualizada bbasicamente é gra rec o iCl começa usu comisav Stöbe ncia de para e gr ! Assi chances IMAP, como o Mail ácabo s espara receb àpor i amente em qualq Markus s man5 GB de em sua , apenas Aha novo sistem es de interfa feito un ou do nas entranhas ainda mais funlam Sequê amente a possib do OS X 10.5. Apenas qualquer cliente com , sa USB, ário m com de sere tenham aça!) fazem ção do caso tuito sincroni Po poros us nadas cem autom mento has. ar. O d nã ndo do do sistema em as notas ficam separadas ectado na s se ssuporte capacida versão era o con nome no servidor. mai ical com t a dados remot nos detalh do Safari máquina o no iOS, m enc Library/Application ˜/ rviço que em uma pasta normal iTunes.udad do adicio também apare dispositivos bási com uário zero o ser s, nem e serve paco o tem de de ontrado o- serviços zaçãr oMa até peque seu cordão umbil é mais seus o dos favoritos nizadorenas nuvens. os Suport/Addresssem rkufio de mesmo s pod os Apesares, alt o deste ano, iPhoto oM do s foram armazenca gem não Book/Sources. s Stö s de nizaçã do em todos em env donos dess s. feita ciente viço. que sej para te de qu não outubro , bloq . O recurs iOS 5 corta partir de agora Também aqui obile diversas s mais expeMas para com men iCloud, ela beser um da erna Caso ticamente a essa conta o e deve iar uma uea é possíos sinc a- mente a ap a ma entra e as s. A vel achar um utador s rem parte, desde. novidad tivas po, rien Me, conta o iTune da arquivo Configurat ior en seus r ou apagar mensa- libertar te na estratég se encaixa dos os um comp po para configuovido lizar seus iPhones iCloud es no tes vão acharoconectados em uma seu o por padrã dad pelo ion. não plist dentro de seus nível de-se você 5 GB as pa ia do para o iOS 5. com) iCloud. necessário ou Windows para caixa e novo iCloud consiste Por den uma dispositi ia da App pervem ativad nte autorizado um r locaUm outro os à distânc completa- amarras s. Pa falta de sej ra tes s Mas para uma eço @me. au corretamente X O - não ma para com uma sequência pasta nomeada tirar da recurso lização, tro da ia. no app Notas e, ra qu parte do serviço rência com Mac vos móv le de m no Mac OS O iClo is ba até menta pois de am ins tar (com endercontatos, calen ser explicitame aparecem em do siset. Basta de . s letras existe no sere OS X nuv email s base 55 e dest eis ud de 10.6, iGadg uma núFotos meros. rat r como uma subpasta e PCs de de entrada fotos ufi em s hum das foto mer a vez mera ado atualizaçõe rar seu de e-m é basicam em para o do app uma nização favoritos e notas usuário. As da seção jáantigPara os o que oGB e o preo espaçoum tem Apple utiliza para pelos fundos. A Lembretes em app Ami anos, mesmo dos iGad s captura . A tran para cado de fotos ial, dentr e sincro ente Ambos os arquivos eu . Se você seus che Com o e-mail, calendáloca envio ail IMAP usar. Até das pela sfelembretes, iGadgets e podem ser aberps e envio “pelo ar” – o . das o, é pre que do Mo ço co dispo rios e contatos álbum espec2 também receb er a Sevia pus com noti um serviço mente gos, disp ga na form lizar tros partilhar gets fica esses últimos sistemas,já estiver com tos em editores dários, seus já os Vista câ-ma TV onib padrões os tema, backu r são feitos du bil receb Fotos. a carg de texto simples, ows ficaç IMAP, Cal- mesmo é possível até a do ils, com h e sinc tipo 4. migra ran ciso usav eM ntinua zar o na App Stor ilizado DAV e CardDAV, O Apple utado como o TextWrangler entre todosOS X Lion, Wind para poder ar todas as editar o texto das e. ronizaçã ões de seu com o iOS respectivamente. gratuita Docume s de arqu Para todo o do favoritos prom o comp (gratuito Mo ram te ess aceitar am o calendários atualização notas, mas re). isso e mostr gicamen marido e. Além ivos endereço de O s os ouLED impossível ntos a mu alg ser bileM de Macs com s, contatos e Procure pelo termo na App Stoacesso aos servidores nos mais antigos apenas novidad e tarefas, s, agenda o de esua TV ou seus da loca que era na Nuv deve-se web. Os quência de Fotos na viç te do co via um a iCloud mes leitura Email ape estão da e li- Tod o usar o s e Bum! permitida, sendo é Lá está o nosso nta até mesmo em em. filho nas ou 7. mos rafias direto listas Por si e em rela esse últim , notas, acessíveis s ain nça. as pe hosp de 20 pode impossível criar os a ente. temporá – é pos a aprovaçã s – loém são suas fotog também de suporte oficial um documento vas notas umbilical só necessário Os rm no- nome desses endereço. No geral, o ou editá-las. não seria esse con ção ao Mobo uma sível ma da ao edag 12, o no site da empreCordão 5 não é mais ão ou res- tamb dários incluem no novo app de 60” automágicam qu o dos Ninguém bordo! rio à servidores deve mem iCl sa. Para receber em seu nter, ativas e iOS ser algo ileM calen está como p04-caldav. ativaç bro do localizaç obter aces grar gle, Yah m lá essa junto de me oud. e-mails o endereço Com o de acessíveis e podem ser do icloud.com para s para a ns ou iPod recursose. com o nto s cois já No é imap.mail.me.com sit iDisk, até tarefas, oo e iCloud ão de qua so tar para o iClo forçando 5 as os bro mais as, já de acesso, nas nuve os usuários entan es, pa Ga meatantos usar o iTune um iPhone, iPad convite de retes do iOS você seu nov e para enviar lquer s pesso ud. É que ou s leria iTunes 4.3.3 TV, -mails endereço de ea ral outros que Goo algo chav do Mo contatos to, com outra Apple menos a do iOS irrecusável iTunes, Lemb é smtp.mail.me.com. tauração séries de s muito concordar Mac com o iPhone possível con mio co elame e artilhados mantém mesma oferecem ao invés do A partir O nome de usuário músicas, 4S . útil de co cativ es, sen bileM via USB o da ecpagand na iTune touch. Ao tar o dispositivo cois as- comp e a senha são e, a m ou mpart nte o iClo em grupo .com também podem baixar man ou seu ser os mesmos usados educado instanos e has, compradossitivo autori- grailhaud livre a. Mas a sin tro para uso do. Mas . O processo eira trad novo no end a, inclusive do seu Apple para conec ido por um do iCloud r meu iPho- livros e apps iCloud dispo icional, de ereço já está disponível ID, inno tan itens prefer croniz s mempara que ajuda clusive o que vier No site é até receb do o ao Busca ên qualquer ctiva. ea usar do ação www.ic acesso via prouração, Alt quiser. você é os depois do @, já Entr mai para quem o iClo e o acess aos documentos s Store em um ernati mente Dash cias que respe de config a, o país, ativar é preciso um e-mail Com têm tuitamente pode etanto, nem loud.com web ud é s rápide de a sistente pri- oferec válido para poder vai além. pela conta como te criado preciso entrar iClou conta vame parte board apli- O 1Pa er o idiom ação e a sua se registrar no nuvem do MobileMe autotodo . ne, assim requer ou Keyno aticamen- zado iTunes naUsuários para nte rs ssw baixar iCloud. a escolh do ão escolher d ser de de Pode ser um O conta até sep mundo mesm ord , Nume de localiz fio. A ativaç autom endereço @me.com oportunidade ra feita anpode passa ão ou um um Mac rodaa festa. O ara então tem aa opção a red sincro A Pages e enviados ador é serviços comp o serviço ou riorm anua o ve da você ão sem registro dispositi -se do. ndo o e sem niza internet. ço de e-mail qualquer. outro enderequalquerusandoos seusde sua Com no iOS . Pelo naveg baixar ele, amen entre tecontinuar l do ncim para en meira conex conexão à OS X o criar vo ou a turm fio ou as senhas r ou venciment paradetodos 10.7.2 uma confi- te para a nuvem uma en mu te mi us a data Tanto no iOS 3 nos a mesa dos rodando em mátic tigos até Store ar, apaga pela requer não escolher gra Mobil to de ar o dar tes, exig quanto no Mac s com ou a o pular de vez para el duplic ento disponível de na iTune intern coletadas tradoou r eM OS pode-se X 10.5 podemos o Win ente, sup PCs a App iOS 5. cadasanual ente nova um possív assinatura e é pre é po de ve a sua ess pode seguir, necessidade et, usa dire su entrar esses dados iCloud. dows de ortando le é melissíve z pa uer docum disositivos elimin ando a aça, do completam documento conta e po a ac e ser ndo inc manualmente mos uma fato ndo tament lha ciso , da Maria-Fum dentro ste guração o de dados a partir s ou qualq formatos. Um pode ser baiem uma nova a você Vista. Mas inclu o r- de ess vidor o Dro e ser l mescl ra a no lusive Há, porémestá iTune ma contaA favor do antig conta IMPA no Mail iCloud o po como nós mos sive pbo entrre os compda conta cu est de desca nização. MobileMe te va. recuperaçã pode estar no o digitar vários te, por exemplo, e usar l, PDF ou de sincro a x. ida ar esc derá ará. a opção dispos com praticamen que com- da to rigina nessa em máquinausar os serv traree-mails normalme nossa conta de funciona Apple ras na com doso duas Como Keyno Chav eleativar é precis suasantigos que ao ser Se for olher backup, el subir itivos ediç nte. seu forma iços do m s velh ático detos ligado a . Para isso mitação: os até on um , caso s lojas a qu com conta notas são movidas Até mesmo as equipamen Um eiro xado em . Também é possív conect inhas O recu ão. ma no Bra de todos estaria no iCloud ficaatualizouelseus ento autom -IDnão a da al ser a esc s, ionaesses pro- regam a para uma pasta de ainda co is ráp sil, -ID. ado ete que até rso De serem das pa para ainda sem ções própria – o que o Apple io é quest PowerPoint Quem s em atíveis com navegador. É possív Apple. Ma s conta ntrári app e ão fei oVolta ido o não é de se admirar, no iOS, dias. iosam seu Apple seus Macs , o usuár aqui rtes viag r “dados arquivos comp 90iOS 5 ouApple a uma pras o o s vas fun clu pelo de por com fio ou su o mú . último ans ao envia tas era já s para pa a que a no do Por bs são apenas rascunhos ser ído iCloud mui Meu ma em sto sozinho de iGadgets ch no mínim na lojadeda , da mes- ele por iCloud, os compromissos fora doconta – e a dispo s para o mos“ auMac não s ex ra mu á tra sped sica da pesso aves, tituída is co arm fun o Dr a assin tos com podem marcapode-se acessar -ID está baixar dos comimpossíveis de 200 OS X Lion ist um op cio o mot considerado , mp para do se estari gratui sé atura óstico anôni . Segun- grama volvedores seus apps à nu- muda r ooApple ou ento público de calendários tantor-irrisão tão uma etiqueta especial. são são da e subsitos do ática ida de pro ais. sive na no box. azená-la , mais ivo para Isso é um ento para anual ar ação partir do iOS A Ao assinar o URL Os desen em eventos existentes a Apple. enO sis seja, a sin licada uso e diagn para a Apple ch ple fun o desca mom Com o auxílio do compartilham s gra O integr mudanças . Ap de segundo titu Já aliz iClou do 4, uer mos entos mas 10.5. ser Ap ira, as X apropriado exemplo, propriado pag tou alg cro s de notas aparecem e ao dame tem da para com ap mo A partir na nte te, que, por MobileM d faz de um servidor anôni atu d no iCal do OS tos mane ar viç un tuitos ple id CalDAV no iCal, aqueles do do docum do a ios qualq nu pela internet mesmo iCloud até mesmo a- ma c’t espec tomaticame esses dados , inform tante paraalmen a da s suas nização nte os dados do calendário e, tam e-mail, por a sincronização bileM s são , ma e mu à altura os ex lha iOS que Wind ps dis autom daqu vem e o iPo sem o Lion. 5, nova sincronizan sitivos do usuár esa, teúdo manu um Mac novo com o Lion 77 100 02/2012 ial 02/20 Segun são atualizados - em criação de novos. exem coisas s po itas ve e. Ro até . Ele - te m de que fer integ Apple senha especial es do vem, m s da a empr possuem 12 o iPad da atua- quanto a ático i, tudo sob seus daows. Umponív outras c’t os dispo iCloud.com plo. Em de meno c’t especial 02/2012 no iOS e, querem 02/2012 for rad não itens entre me web. r ze s todos s ificaçõ co ou especial em comp c’t ram eis tes on o via s em comp . lho isso ensação, e espec penho e tre outro pre mper incluem, Elas nseg ma tra mas não podem para , incluen o ao é tão -ameri guard dos ma a de o acess o iPh res me não aração presen sa hardware agora nspa tas qu OS mas sem cano a do para erda) is sig svanta iOS vanta s for da com o que smo ao Mobi nave até co uem pode-se já ções de as de desem amenda – ne 4S (à esqu volume. leMe, nece maçã configura equip Drop serviç iloso gem e gado nseg ser tão rente e tra X pro foi no ecos o Mo a, métric ge da dos vid como us sistem ns de ba r regra rar do 100 ad o on s est o uso ore es e co sistem é bo ue res 13 ble tícia aguar ce-se o iPho ker s de e-ma as regras de botõ s em conc res 113 plo 112 arã ma usad as na wo ma x, e arm m int confo amen dados sobre ret a a dos tem ntar , rd pa s co is de que no line no o il na versã nhe acim rd Bec fun têm-se Cupe as. Se nha automas no intern aze egrar rtáveis. - Sto a o recoLeopret o web, alg com diatpor cio re e ra ma m seg uma passa rtena -se um linha perso nand ainda rtino ca um atica Finde et, ma r as a ve aos De ime pela c’t especia c cu ura vez do as do r l 02/2012 O O l 02/2012 c’t especia exata naliza o. Alé parte ir, po s ser seg 1Passw mente não são s as senha 6 tan Keyc rsão pa sta US nça. O sobre ape ap nas s r ue ord , por 1Pa supo chaves Qu mente r as m dis dos rec exem - autom sin para to na hain2Go ra iOS 50 c’t especia ssem cro ex é so na ofe l 02/2012 l 02/2012 sim custa sai po rtas , é po ursos App impo atica nizar um de emplo rtada Este iOS, ma versã às c’t especia s r ple não o de ssí pre suas sm um de rtar, mente sua ba sses qu . 101 um progra s ain para apen US 10. 76 ser vel se for . O a em ente cisa ch ne po se e ma da est OS X as US ves aves esq do cessi viços pre tem pre progra de da con- ele rod uco á qu sa de uecê iDi dade ciso, se do OS e sen a em difere um em fas anto ma do sk c’t esp hosp -lo e po s. site redigi X, pa has do o seu po s pla nte doa abord e beta. ecia edag contr de no s ac tar tod ra qu Acess mo de l 02/ de Poste um 1Pa agem 2012 e vo lho em atar fun ssw ula os os cê não às Ch rio de do ord si- leção rmen dos ao seus ano o : para em um te é Ma lon registr precic os outro c’t espe arq possí go cial 02/2 s dis uivo vel sal dos an em 012 positi loc os va vos al, trans r a co . - O em um ferí-lo Key a red c’t e com chain2Go e o com progra sincro iGadge ma Ace niza ts. sso seu ban às Cha co de ves do Ma dados o c OS Xe
A
r elho zes m cdeos doviOeS 5 e o iCloud Cin da novi
raos o futuro lta paantig De vo equipamentos iCloud em
Entre o céu
iCloud para
todos os gostos
R e a Terr a
Dan
ça d
Com pleta ndo
a Ch
o iC loud com outr os se rviç os
uva Q
O
As
ram as fo câtranh hor as en s, mel oS do as su .M rápi re e ais ssor sm wa tece áfico ard ri. u an gr h Si se e, fala l ao ovo l-Cor ca. igua to de e bran on Dua te r en preta s en o cores sado ecim am el nas am atic oces disponív conh está é pr Test ne 4S vo pr e de re 4S O iPho s: no ar ,o fora rada softw Por vo elho o no to m 5e mui S ann a, iO Ehrm mer por
S
e4
on
iPh
Ste
phan
a iri n
tica prá
12 101
Em março nas bancas!
iClou
d
Ruby Version Manager | PROGRAMAÇÃO
PROGRAMAÇÃO
Ruby Version Manager (RVM) na prática
Mudança rápida! O RVM torna o gerenciamento de múltiplos interpretadores Ruby, versões e gems mais ou menos como brincadeira de criança. por Caspar Clemens Mierau
O
sucesso do Rails ajudou o Ruby a se estabelecer como uma linguagem de script voltada para a web, como o PHP, Perl e Python. Apesar de muitas distribuições Linux oferecerem um pacote pré-compilado do Ruby, desenvolvedores e administradores talvez tenham problemas caso surja a necessidade de usar múltiplas versões de Ruby em paralelo. Além disso, escolher entre a gama de possíveis interpretadores e versões de Ruby torna-se cada vez mais confuso. O interpretador clássico – quase sempre chamado de “Interpretador Ruby do Matz”, ou MRI (do inglês, Mat'z Ruby Interpreter) [1] por conta de seu principal desenvolvedor, é atualmente mantido em duas versões, 1.8 e 1.9, por causa de mudanças que alteram sua retrocompatibilidade. Projetos que dependem do Ruby 1.8 normalmente usam o Ruby Enterprise Edition (REE, ou Ruby Edição Corporativa)[2], que acrescenta um garbage collector me-
Linux Magazine #88 | Março de 2012
lhorado para aplicativos dinâmicos. Projetos relacionados com Java e cujo desempenho é fator crítico utilizam o Jruby [3], uma implementação do Ruby em Java que fornece bindings (ligação entre dois sistemas) para um projeto em Rails. As RubyGems [4] são o padrão para extensões, comparável ao CPAN do Perl, ao PEAR do PHP e aos Eggs do Python. Gems são administradas por um gerenciador de pacotes separado, que inicialmente facilita o seu uso, mas que pode causar confusão em projetos com diferentes dependências de gems. O RVM [5] oferece uma solução para esta complexa interação de interpretadores, versões e Gems do Ruby, ao ajudar os desenvolvedores a manter ambientes baseados em projetos.
Instalação A instalação padrão do RVM é uma tarefa simples, porém incomum para o administrador. Como normalmente é o caso no mundo
Ruby e Rails, o script de instalação é executado diretamente na rede. Você simplesmente precisa instalar o Git e o Curl antecipadamente. No Debian ou Ubuntu, você pode preparar o sistema para a instalação do RVM ao digitar: apt-get install curl git-core
Se seguir o método de “instalação rápida” [6], poderá chamar o script diretamente na rede através da linha de comando: $ bash -s stable < <(curl -s https://raw.github.com/ wayneeseguin/rvm/master/ binscripts/rvm-installer)
O script em bash que poderá ser executado no Linux ou no OS X, utilizará o Git para baixar mais código fonte da web e então instalará a última versão do RVM.
Listagem 1: ~/.rvm/ gemsets/global.gems 01 02 03 04
LISTING Default Gemset bundler -v~>1.0.0 awesome_print shoutbox_client
49
PROGRAMAÇÃO | Ruby Version Manager
Por conta de serem apenas scripts baseados em Shell, não há necessidade de compilar nada. Para usar o RVM em modo interativo, o Shell precisa saber o caminho para o RVM de forma a carregar os scripts. Se você possuir uma instalação específica para usuários sem privilégios de root, precisará adicionar a seguinte linha ao fim de seu ~/.bash_profile ou ~/.zshrc para o Bash e Zsh, respectivamente: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
Depois de executar um novo Shell, ou em alguns casos, logar novamente, o novo comando rvm torna-se disponível. Uma instalação específica para o ambiente do usuário (sem root) é recomendada inicialmente porque ela não altera nenhum arquivo importante, não necessita de privilégios administrativos e pode ser facilmente removida ao digitar rm -rf ~/.rvm. Por outro lado, se múltiplos usuários precisarem acessar o RVM, não há outra alternativa que não uma instalação global.
Instalação Global Uma instalação desse tipo é iniciada da mesma forma que uma instalação para um usuário específico, mas deve ser feita tanto com o uso do comando sudo ou a partir da conta do root. O script de instalação detecta os privilégios para uma instalação global e executa o instalador. O RVM é então colocado em /usr/local/rvm e o comando rvm é acrescentado ao /usr/local/bin/rvm por meio de links simbólicos. Os scripts para Bash e Zsh são depositados no /etc/profile.d/rvm.sh e o grupo RVM é criado. Usuários que precisam trabalhar com RVM devem ser membros desse grupo; para isso, digite: adduser USUÁRIO rvm
A lógica do instalador RVM já mudou múltiplas vezes na história do projeto, portanto você pode encontrar algumas diferenças dependendo da idade do pacote que usar. O próximo login com a conta do usuário aplicará os privilégios alterados de grupos e acesso aos
scripts e ao comando RVM que estará disponível. Shells de login normalmente executam os scripts no /etc/profile automaticamente, sem a necessidade de extensão manual, em contraste com a instalação específica para um usuário.
Primeiros passos Os comandos rvm help e man rvm te dão uma visão geral do uso. Dependendo da instalação do Ruby que você deseja. Talvez seja necessário atender a certas dependências. O comando rvm requirements exibe uma lista de dependências necessárias para cada versão do Ruby que varia conforme a distribuição utilizada e como resolvê-las a partir do gerenciador de pacotes (veja a tabela 1 para comandos RVM importantes). As chamadas do apt-get para a preparação da instalação do Ruby clássico e do mais exótico JRuby são exibidas na figura 1. Instalar os interpretadores Ruby é facil uma vez que você atendeu às dependências. Esse comando: rvm install ruby-1.9.2
Figura 1 Dependências para os vários interpretadores Ruby no Ubuntu.
50
www.linuxmagazine.com.br
Ruby Version Manager | PROGRAMAÇÃO
instala a versão 1.9.2 do interpretador Ruby clássico com os atuais patchs estáveis. O instalador baixa as fontes e as compila para o sistema alvo. O RVM te avisa caso haja alguma dependência perdida e exibe o comando necessário para que você baixe o pacote para o sistema operacional ou distribuição Linux. Para passar parâmetros de configuração diretamente para o script configure, use: rvm install 1.9.2 --without-readline
JRuby e outros interpretadores Ruby são instalados da mesma forma (por exemplo com jruby-1.6.3 ou ree-1.8.7). Se você necessita de uma lista de derivados do Ruby e
versões que o RVM permite a você instalar, é só digitar uma versão de patch (como em ruby-1.8.7-p352), a versão atual (-head), ou um desenvolvimento específico (por exemplo -rc1), e para o Ruby clássico você pode até mesmo omitir o nome: rvm install 1.9.2 fará o truque. Depois de completar a instalação, digite rvm use para mudar para o ambiente Ruby. rvm use 1.9.2 muda para a versão instalada neste exemplo. A versão providenciada pelo sistema pode ser reutilizada a qualquer momento ao digitar rvm use system. A mudança para uma determinada versão RVM é sempre específica da sessão. Em outras palavras, você pode facilmente executar duas versões totalmente diferentes do Ruby em duas jane-
las de terminal. O comando rvm info exibe os detalhes da versão que você está usando atualmente. A figura 2 mostra a saída do terminal depois de alterar para a versão 1.9.2. Você também pode ver claramente como o RVM funciona: modificando o PATH e outras variáveis de ambiente sem ter que modificar o sistema de arquivos.
Conjunto de gems O uso do RVM para manipular RubyGems é bastante útil. Apesar de você talvez ser capaz de executar múltiplas versões do Ruby em paralelo com alguma dor de cabeça, a necessidade de administrar diferentes conjuntos de gems (ou gemsets ) é definitivamente problemática demais. Um conjunto de Gems é simplesmente uma coleção de diferentes Gems. As próprias RubyGems suportam operações paralelas, com múltiplas versões da mesma Gem. O Rails, que não é exatamente uma Gem, pode teoricamente ser instalado em múltiplas versões, cada uma delas com seu próprio conjunto de dependências. O código Ruby pode então carregar as Gems específicas. Infelizmente alguns programas se comportam mal, e irão sempre carregar a última versão das Gems, ao invés de uma versão específica e isso irá levar a problemas de compatibilidade. Uma abordagem prática nesse caso, é manter as Gems em um determinado projeto ao invés de instalá-las aleatoriamente. Isso garante o uso das Gems necessárias. O RVM utiliza containers para uma coleção específica de Gems. O comando abaixo: rvm gemset create projeto1
Figura 2 Saída do rvm info após mudar a versão instalada do MRI para 1.9.2.
Linux Magazine #88 | Março de 2012
cria um conjunto de Gems para o projeto1 no ambiente atual. Você pode digitar:
51
PROGRAMAÇÃO | Ruby Version Manager
rvm use 1.9.2@project1
para alterar o conjunto de Gems. Qualquer Gem instalada com gem install é alterada para o conjunto da versão do Ruby. Uma forma mais rápida é digitar: rvm use 1.9.2@projeto2 --create
que criará o conjunto de Gems e a mudança para a versão ao mesmo tempo. Caso precise de acesso ao diretório das Gems, pode digitar rvm info ou echo $GEM_HOME para exibir o caminho. Os conjuntos de Gems não apenas ajudam os programadores a isolar um projeto, mas também permitem a você testar uma nova Gem sem correr riscos. Para copiar um conjunto completo de gems, digite: rvm gemset copy 1.9.2@projeto1 1.9.2@projeto2
Você pode fazer isso até mesmo entre diferentes versões de Ruby. De forma similar, pode salvar um conjunto de Gems em um arquivo .gems ou importá-las de um arquivo existente ao digitar: rvm gemset export/import
Se você sempre necessita das mesmas Gems no seu novo conjunto, pode manter uma lista de Gems padrão no arquivo ~/.rvm/ gemsets/global.gems. As Gems são
automaticamente listadas quando você cria um novo Gemset ( listagem 1).
Configuração O RVM busca suas configurações no arquivo ~/.rvmrc ou /etc/rvmrc. A configuração é opcional, mas permite que você ajuste parâmetros de compilação específicos. Para uma lista de opções, verifique o arquivo ~/.rvm/examples/rvmrc. O uso de arquivos de configuração .rmvc específicos para cada projeto é mais interessante. Os scripts RVM para Bash e Zsh, aos quais me referi antes, carregam o RVM e também verificam o arquivo .rvmrc dentro do diretório atual, quando você muda de pasta. Se o arquivo existir, ele o checa uma vez e depois se oferece para para carregá-lo automaticamente no futuro. Quando você cria um conjunto de Gems, pode automaticamente criar um arquivo .rvmrc correspondente na pasta atual: rvm --rvmrc --create 1.9.2@projeto3
A primeira vez que mudar para o diretório, precisará confirmar que confia no arquivo. Depois disso, mudar para o diretório altera automaticamente a versão do Ruby e do conjunto de Gems. Além disso, editar o arquivo .rvmrc
oferece a oportunidade para que desenvolvedores publiquem uma versão compartilhada do Ruby e de um determinado conjunto de Gems. Novos desenvolvedores recebem automaticamente a versão certa. A única desvantagem é que apesar do conjunto das Gems ser criado automaticamente, uma versão ausente do Ruby não é instalada, portanto o desenvolvedor terá que consertar isso digitando rvm install. No final das contas, o .rvmrc é apenas um script simples em Bash. Uma olhada rápida no arquivo gerado automaticamente mostra que ele baseia-se em variáveis do sistema e em lógica de Shell script. Em outras palavras, é uma boa ideia ajustar outras variáveis do sistema no arquivo .rvmrc ou modificar os scripts RVM para o projeto em questão (por exemplo para obrigar o uso do interpretador de 32-bits ao invés do de 64-bits).
Integração e scripts Se você utiliza serviços que fazem uso do Ruby e RubyGems, como o Passenger, o uso do RVM pode ser um tanto quanto traiçoeiro [7]. Dependendo do software que você utilizar, é preciso checar como é possível integrá-lo ao RVM. É quase sempre útil definir os caminhos absolutos para o interpreta-
Comando
Função
rvm requirements
Exibe as dependências necessárias
rvm list
Exibe os interpretadores instalados
rvm install VERSAO-DO-INTERPRETADOR
Instala um interpretador
rvm info
Exibe informações sobre o ambiente RVM atual
rvm use VERSAO-DO-INTERPRETADOR/default/system
Muda o ambiente
rvm get latest/head/VERSAO
Atualiza o RVM
rvm remove VERSAO-DO-INTERPRETADOR
Remove um interpretador
rvm notes
Exibe as notas da versão
Tabela 1 Comandos RVM mais importantes.
52
www.linuxmagazine.com.br
Ruby Version Manager | PROGRAMAÇÃO
dor Ruby. O RVM cria links simbólicos para cada versão do Ruby e os links podem ser executados diretamente. Para ver detalhes do path , digite rvm info. Mesmo que caminhos como /home/ccm/.rvm/ rubies/ruby-1.9.2-p290/bin/ruby
pareçam comuns, eles apontam para uma instalação completa do Ruby. O processo de carregamento para conjuntos de Gems é administrado por variáveis do sistema, scripts de inicialização, ou outros scripts, dependendo do serviço. No caso do Passenger e do Rails 3, por exemplo, você pode ajustar o caminho em um arquivo config/setup_load_paths.rb em seu projeto do Rails. Para uso diário do RVM, há outros scripts úteis que podem te ajudar. Por exemplo, se você quiser executar o comando sudo enquanto estiver no ambiente RVM, poderá usar o rvmsudo como um wrapper que permite referenciar arquivos .rvmrc em Shells não interativos. Para tarefas do cron, você pode provavelmente ajustar a variável
SHELL para o rvm-shell certos de forma a se certificar que os scripts serão executados corretamente.
Futuro Usuários avançados de Ruby e desenvolvedores encontrarão um compêndio de melhores práticas e a solução de problemas específicos no site do RVM [8] [9]. Está sendo discutida a interação com o pacote Gem, assim como a integração a ambientes de desenvolvimento, o uso em ambientes de integração contínua, como o Hudson, e a função autocompletar no Zsh/Bash. O Ubuntu Oneiric Ocelot (11.10) foi uma das primeiras distribuições Linux a incluir o pacote RVM [10]. Ainda está por saber se o uso atípico do RVM na distribuição irá harmonizar-se com o gerenciador de pacotes. Apesar da oferta do RVM como um pacote remover a barreira inicial de uma instalação não convencional, isso pode vir às custas de uma demora maior para o curto ciclo de desenvolvimento
Mais informações [1] Ruby MRI: http://en.wikipedia.org/wiki/Ruby_MRI [2] Ruby Enterprise Edition: http://www.rubyenterpriseedition.com/ [3] JRuby: [http://www.jruby.org/
do RVM. No cenário dos servidores automatizados, o RVM pode ser colocado em operação de forma conveniente com o Puppet. Módulos para o Puppet estão disponíveis no Github [11]. Se você não tiver medo de realizar experiências, o RVM pode ser o primeiro degrau para utilzar o Scripting Management Framework (SM) [12]. Esse sistema, que é também conhecido como BDSM, é um framework de scripts para automação de servidores, que é mantido principalmente por desenvolvedores do RVM. Essa abordagem abre uma nova perspectiva e uma sinergia interessante para a interação entre gerenciadores de servidores e aplicativos de provisionamento. O RVM é um complexo gerenciador de meta-pacotes para interpretadores Ruby e Gems. Sua implementação em Bash e as míseras dependências do Curl e git-core oferecerem uma solução bastante leve, porém poderosa. Apesar das dificuldades para gerenciar o RVM, a ferramenta é atualmente a solução mais utilizada para esse fim no universo Ruby. Quer você escolha instalá-lo através do gerenciador de pacotes da sua distribuição ou não, não existe maneira mais simples de administrar o Ruby. ■
[4] RubyGem: http://rubygem.org/ [5] RVM: https://rvm.beginrescueend.com/ [6] Instalação rápida e outros métodos de instalação: https://rvm.beginrescueend.com/rvm/install/ [7] Rubies RVM com o Passenger: http:// beginrescueend.com/integration/passenger/
O autor Caspar Clemens Mierau é um cientista de mídia e cultira, e atualmente trabalha em sua tese sobre ambientes de desenvolvimento. Seu projeto Screenage provem serviços de consultoria para corporações.
[8] Integração com o RVM: http://beginrescueend.com/integration/ [9] RVM workflow: http://beginrescueend.com/workflow/ [10] Ubuntu RVM: http://packages.ubuntu.com/oneiric/ruby-rvm] [11] RVM e Puppet: https://github.com/blt04/puppet-rvm [12] SM Framework: https://sm.beginrescueend.com/
Linux Magazine #88 | Março de 2012
Gostou do artigo? rtigo? Queremos ouvir sua opinião. pinião. m Fale conosco em ine.com r cartas@linuxmagazine.com.br e: Este artigo no nosso site: br/art /653 http://lnm.com.br/article/6530
53
ANÁLISE | Provisionamento centralizado
Provisionamento centralizado
ANÁLISE
Máquina de fumaça O Fog é uma ferramenta de clonagem que cria e gerencia imagens de disco e ajuda a implementá-las por toda uma rede de PCs. por Konstantin Agouros
D
iversas ferramentas oferecem a opção de criar e restaurar discos completos ou partições individuais. Por exemplo, Norton Ghost [1], True Image [2], Clonezilla [3], Partimage [4], entre outras. A ferramenta livre para Linux, o Fog [5], pode capturar imagens na rede e distribuí-las. Em outras palavras, não se trata de um programa de backup no sentido clássico: é mais uma ferramenta de provisionamento. O Fog inclui diversos recursos práticos, como a capacidade de automatizar o processo de criação de contas de usuário e registro de hosts no Active Directory, após uma reinstalação. O programa pode ser comparado ao Snap Deploy [6] no Windows. Os administradores que gerenciam uma grande quantidade de clientes estão sempre interessados em automatizar o maior número possível de processos. O próprio Windows oferece uma opção de instalação não supervisionada semelhante ao Kickstart [7] da Red Hat. Além da instalação básica, um sistema nor-
62
malmente precisa de uma seleção de programas e drivers. Então faz sentido criar uma imagem de um sistema pré-instalado para grupos de hosts idênticos e copiá-la em outros computadores – e isso é exatamente o que o Fog faz. Para este artigo, usei a versão 0.32 do programa.
Arquitetura O sistema é baseado em um servidor DHCP, que responde às requisições de boot PXE dos clientes e mostra um menu de inicialização, ou se oferece para inicializar diretamente a partir da rede. O servidor Fog usa TFTP e NFS para servir os arquivos de boot. Uma combinação LAMP e algumas ferramentas do tipo “faça você mesmo” cuidam de todo o conjunto. As imagens ficam normalmente no disco do servidor. Se não houver espaço suficiente devido ao número de clientes, ou se o tráfego de dados não for rápido o bastante, o Fog também pode acessar nós de armazenamento. Esses nós fornecem espaço suficiente para um grande número de imagens e também podem estar
mais próximos dos clientes do que o Fog na topologia da rede. Os PCs gerenciados precisam ter como primeira opção de boot a rede, para que seja possível administrá-los remotamente. Um cliente Fog mostra o menu criado no Syslinux, como vemos na figura 1, após a inicialização. A primeira entrada inicializa a partir do disco local, e o cliente vai usá-la como padrão após o tempo se esgotar. As outras entradas permitem que o usuário registre o PC no banco de dados do Fog, execute um teste de memória, crie uma imagem de disco ou confira dados sobre o host. Todas as entradas do menu – com exceção da primeira – iniciam um kernel Linux que usa parâmetros de boot para identificar as escolhas do usuário. O sistema operacional padrão pode ser uma distribuição Linux também, mas o Fog é otimizado para Windows XP, Vista e 7 no lado dos clientes. Para induzir um PC não supervisionado a fazer algo, os clientes Windows executam um serviço que periodicamente consulta o servidor para saber se uma tarefa está na fila.
www.linuxmagazine.com.br
Provisionamento centralizado | ANÁLISE
dos a grupos de armazenamento. Para cada nó, é necessário designar o endereço IP, nomes de usuário e senhas para permitir a comunicação, o acesso às imagens e o maior número possível de clientes que podem acessar o nó.
Snap-ins e tarefas
Figura 1 A tela de boot de um cliente Fog após uma inicialização de rede.
Se sim, leva-se em conta que ninguém se logou e o serviço reinicia o computador. Após a inicialização de rede, o sistema é configurado e então começa a executar as tarefas designadas para ele, como a criação de imagens.
Gerenciamento A administração do Fog é feita por uma interface web atraente, que disponibiliza as etapas de modo bem organizado (figura 2). Aqui os hosts são o foco das tarefas de administração. Os dados do host podem chegar ao banco de dados de várias maneiras: pelo registro no menu de boot, manualmente pela interface web ou pelo upload de um arquivo CSV (figura 3). O Fog pode organizar os hosts em grupos para criar uma camada de abstração. Cada ação que o servidor executar para um único host também pode ser aplicada a um grupo. As próximas tarefas de administração focam nas imagens. Para criar uma imagem, apenas designe um nome, um nome de arquivo (mesmo que ele não exista), um tipo e um grupo de armazenamento. O tipo pode ser uma partição NTFS
Linux Magazine #88 | Março de 2012
(que pode ser redimensionada para economizar espaço), uma imagem com várias partições ou uma imagem de disco completa. O redimensionamento não está disponível para os últimos dois tipos. Também constatamos em nosso laboratório que os tamanhos das partições são fixos para sistemas Linux clonados, mesmo se o sistema-alvo usar um disco maior. O próximo item de menu cuida dos grupos de armazenamento. Os nós de armazenamento são associa-
São usados snap-ins para integrar as tarefas (Tasks) que um cliente executa automaticamente, como instalar um programa ou executar um script Windows PowerShell. Infelizmente, o Fog só implementa seu sistema snap-in em clientes Windows. Os administradores também podem designar tarefas de nível mais baixo para um host ou grupo. As máquinas selecionadas executam a tarefa designada no próximo boot. Além de instalar ou criar uma imagem, o menu Advanced tem opções para: inventário de hardware, scan antivírus com o ClamAV, fazer a análise do disco, apagar o disco com diversas opções, recuperar dados e zerar a senha. O componente que executa snap-ins em clientes Windows também é implementado como plugin. O Fog é bem reticente quando se trata de tarefas para clientes Linux: é possível clonar um sistema Linux, e
Figura 2 A interface de administração do Fog. Após logar-se, será exibido um painel com estatísticas de uso.
63
ANÁLISE | Provisionamento centralizado
transfere seus dados para o servidor Fog de modo aberto, sem nenhum tipo de autenticação em nenhum dos lados. Em outras palavras, o Fog expõe os clientes a riscos, embora a autenticação HTTPS seja suficientemente fácil de implementar para resolver essas questões.
Implementação livre
Figura 3 Um host registrado no Fog. O administrador usa o menu da esquerda para gerenciar os PCs.
o programa permite criar contas de usuários com o comando useradd na máquina alvo. Contudo, procurei em vão por um serviço no cliente que levasse em conta as particularidades das distribuições Linux e cuidasse de tarefas de administração típicas.
Impressão, Active Directory e repouso O Fog pode pedir a clientes que executem outras ações, como mudar o hostname ou apagar diretórios específicos. Se você habilitar o plugin para limpar contas de usuários, é preciso decidir antes da clonagem quais dos usuários existentes não serão apagados. Em seguida, você pode adicionar esses nomes à lista de contas protegidas. O Fog pode administrar impressoras de modo centralizado e configurar a impressão automaticamente em clientes Windows. Também pode cuidar da associação de membros no Active Directory (contas de computadores). O Green Fog é um plugin que faz os computadores hibernarem (modo sleep). Um componente de logout automático encerra as sessões se nenhuma atividade for detectada.
64
O sistema também registra em logs quaisquer vírus que encontrar, assim como os logins e logouts de usuários – se a política de privacidade local o permitir. Finalmente, o Fog também cria relatórios abrangentes sobre o número de imagens e as atividades nos sistemas.
Tirando a questão da segurança e o gerenciamento rudimentar de erros, o Fog é um software livre de implementação útil. O servidor administra imagens criadas e clonadas a partir dos PCs, dispara tarefas e usa snap-ins em sistemas Windows – pelo menos para cuidar das tarefas de administração mais importantes. O sistema de nós de armazenamento faz do programa uma opção para ambientes de larga escala, sendo que os fóruns de usuários citam instalações Fog que gerenciam milhares de clientes. ■
Mais informações
Filme de terror?
[1] Ghost: http:// us.norton.com/ghost/
Embora o sistema Fog seja sofisticado em alguns aspectos, ele tem algumas falhas óbvias. Uma dessas tem a ver com a confiabilidade: o Fog só identifica alguns dos erros que ocorrem. Quando tentei restaurar uma imagem em um disco de capacidade bem pequena, o cliente exibiu uma mensagem de erro durante a inicialização, mas a interface web no servidor informou que a tarefa foi completada com sucesso. Esse é exatamente o tipo de desinformação que o administrador de um grande grupo de PCs não quer que uma ferramenta de provisionamento forneça. O segundo ponto fraco está na segurança: o cliente Windows usa apenas HTTP para se comunicar com o servidor. O sistema Linux iniciado para executar uma tarefa remota pela rede faz exatamente a mesma coisa:
[2] True Image: http://www. acronis.com/homecomputing/ products/trueimage/ [3] Clonezilla: http:// clonezilla.org [4] Partimage: http:// www.partimage.org [5] Fog: http://www. fogproject.org [6] Snap Deploy: http://www. acronis.com/enterprise/ products/snapdeploy/ [7] Documentação Kickstart: http://fedoraproject.org/ wiki/Anaconda/Kickstart
Gostou do artigo? o? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br ne.com.b Este artigo no nosso o site: site http://lnm.com.br/article/6499 ticle 99
www.linuxmagazine.com.br
Gerenciamento de listas de email com o Mlmmj | TUTORIAL
Gerenciamento de listas de email com o Mlmmj
TUTORIAL
Mala direta peso pesado Relativamente desconhecido, o Mlmmj é uma alternativa interessante de gerenciamento de mala direta, assim como o Mailman. por Florian Effenberger
Q
uando é preciso gerenciar listas de email de mala direta, o Mailman é na maioria das vezes, a ferramenta escolhida. O programa não é apenas maduro e amplo, mas também oferece muitos recursos em uma interface web conveniente. No entanto, existem alternativas. O Mlmmj (Mailing List Management Made Joyful) [1] é um representante menos conhecido desta categoria, mas vale a pena analisá-lo.
O começo não é fácil Durante o planejamento da infraestrutura do projeto LibreOffice atual, a mala direta teve um papel central nos principais meios de comunicação da comunidade. Os requisitos eram específicos. Tradicionalmente, o projeto tem diversas malas diretas com os mesmos nomes em diferentes subdomínios, por exemplo, discuss@de.libreoffice.org e discuss@ si.libreoffice.org; a lista é moderada por inúmeros voluntários ao redor do mundo, e todos utilizam email. Precisamente, eram estes requisitos que o Mailman não podia satisfazer – a moderação é protegida e principalmente baseada na web pelas mesmas senhas por todos os moderadores, e as malas diretas com
Linux Magazine #88 | Março de 2012
nomes iguais não serão suportadas até que a versão 3.0 seja relançada. Após avaliar diversos sistemas, o Mlmmj finalmente foi escolhido. Devido à sua similaridade com o Ezmlm, que é utilizado pelo OpenOffice.org atualmente, o Mlmmj foi escolhido, já que não havia necessidade de mudar os hábitos dos usuários. Enquanto o Ezmlm baseia-se no Qmail, o Mlmmj é compatível com os servidores de email mais populares, incluindo o servidor utilizado neste cenário, o Postfix.
Instalação A instalação do Mlmmj foi algo simples em nosso laboratório no qual utilizamos como sistema operacional o Ubuntu 10.04 LTS. Um simples apt-get install mlmmj adiciona o programa ao servidor. O Mlmmj é executado no próprio contexto do usuário, no mínimo por razões de segurança. No Ubuntu, o programa não cria uma conta de usuário, o que pode ser feito através do comando adduser --system mlmmj. Além disso, faz sentido encaminhar emails endereçados ao usuário
Listagem 1: master.cf 01 mlmmj 02
unix n n flags=DORhu user=mlmmj argv=/usr/bin/mlmmj-receive -F -L /var/spool/mlmmj/$nexthop/
pipe
Listagem 2: /etc/postfix/virtual 01 lists.linuxmagazine.com.br VIRTUAL 02 abuse@lists.linuxmagazine.com.br root 03 postmaster@lists.linuxmagazine.com.br root
Listagem 3: Transportes para o LibreOffice 01 /^(documentfoundation\.org--announce).*$/ mlmmj:documentfoundation.org/announce 02 /^(documentfoundation\.org--discuss).*$/ mlmmj:documentfoundation.org/discuss 03 /^(global\.libreoffice\.org--l10n).*$/ mlmmj:global.libreoffice.org/l10n
65
TUTORIAL | Gerenciamento de listas de email com o Mlmmj
um exemplo do arquivo /etc/postfix/ virtual na listagem 2. Finalmente, recarregue o serviço do Postfix através dos comandos postfix reload e postmap /etc/postfix/ virtual para completar a integração com o sistema de email.
Aliases e transportes Figura 1 O gerenciamento de mala direta em Mlmmj depende de comandos especiais e arquivos de configuração.
do sistema mlmmj para o postmaster dependendo do seu sistema de email. Você usará tanto o arquivo .forward quanto o arquivo /etc/aliases para isto. Após criar o diretório de spool com o comando: mkdir /var/spool/mlmmj && chown mlmmj:/var/spool/mlmmj
você terá completado o processo de instalação do programa. O próximo passo é integrar o Mlmmj com o sistema de email; a documentação do Mlmmj possui um guia muito útil para fazer a integração. Neste artigo, abordaremos como conectar o Mlmmj com o servidor de emails Postfix. A lista deve ser armazenada em arquivos separados, e separadamente do restante do sistema de email – como por exemplo, em arquivos como /var/spool/mlmmj/virtual. regexp e /var/spool/mlmmj/transport. Para certificar-se de que o Posfix realmente está processando os arquivos, você precisa adicionar as seguintes linhas ao arquivo /etc/ postfix/main.cf: virtual_alias_maps = regexp:/var/ spool/mlmmj/virtual.regexp transport_maps = regexp:/var/ spool/mlmmj/transport
Habilite também a opção: mlmmj_destination_recipient_ limit = 1
O Mlmmj irá se conectar ao Postfix e utilizá-lo como método de transporte das mensagens. A fim de publicar o serviço, você precisa adicionar algumas outras linhas no arquivo /etc/postfix/master.cf (listagem 1). Estas entradas fazem com que o Postfix chame o arquivo /usr/ bin/mlmmj-receive para o transporte de mensagens do Mlmmj; em seguida, ele cuidará do processamento das mensagens. É necessário ainda informar ao Posfix o domínio virtual para sua mala direta, caso você não tenha feito isso. Edite a linha correspondente no arquivo /etc/postfix/virtual para fazê-lo. Lembre-se também de criar apelidos (aliases) para abuse e postmaster, de forma que todas as mensagens enviadas para esses agentes sejam recebidas corretamente. Idealmente, eles não devem ser filtrados. Esta é a única maneira de assegurar que os contatos corretos sejam atingidos em caso de problemas, e evitar que ocorram entradas de emails válidos nas blacklists. Veja
Criar a primeira mala direta envolve várias etapas, que diferem dependendo do sistema de email que você utiliza. Para o Postfix, você precisa começar registrando o serviço de transporte no arquivo /var/spool/ mlmmj/transport. Conforme exemplifica a documentação da ferramenta, o formato ideal é: /^(domain\.tld--listname). *$/mlmmj:domain.tld/listname
No caso das listas do LibreOffice, a configuração se parece com a da listagem 3. Para atribuir endereços de email aos aliases, você precisa de um segundo arquivo: /var/spool/mlmmj/virtual.regexp. O formato é o seguinte: /^(listname.*)@(domain\.tld)$/ domain. tld--${1}
A listagem 4 mostra a configuração para as listas do LibreOffice. Os administradores experientes perceberão que estas entradas definem três malas diretas: ➧ announce@documentfoundation.org ➧ discuss@documentfoundation.org ➧ l10n@global.libreoffice.org O caminho básico é /var/spool/ mlmmj. Portanto, a lista announce@ d o c u m e n t f o u n d a t i o n . o r g está localizada em /var/spool/mlmmj/ documentfoundation.org/announce; e a lista l10n@global.libreoffice.org está localizada em /var/spool/mlmmj/ global.libreoffice.org/l10n.
Listagem 4: Transportes para listas do LibreOffice 01 /^(announce.*)@(documentfoundation\.org)$/ documentfoundation.org--${1} 02 /^(discuss.*)@(documentfoundation\.org)$/ documentfoundation.org--${1} 03 /^(l10n.*)@(global\.libreoffice\.org)$/ global.libreoffice.org--${1}
66
www.linuxmagazine.com.br
Gerenciamento de listas de email com o Mlmmj | TUTORIAL
Após alterar os arquivos virtuais e de transporte, você deve recarregar novamente as configurações do Postfix com o comando postfix reload para habilitar a configuração.
Primeira mala direta Uma vez que os aliases requeridos estejam devidamente atribuídos no sistema de email, você pode configurar as listas. As etapas são independentes do servidor de email que você utiliza. O foco aqui é o programa mlmmj-make-ml, que aguarda o diretório de spool (com um subdomínio neste caso) e a lista de nomes (listagem 5) como parâmetros. A ferramenta consulta o subdomínio, o endereço do proprietário da lista e o idioma a ser utilizado nos textos da lista. Teoricamente, a nova lista está pronta para ser utilizada agora – um email para listname+help@ subdominio deve retornar o texto de ajuda como resposta. O aviso de mlmmj-list, dizendo que você precisa de uma entrada em /etc/aliases, pode ser ignorada na configuração do Postfix neste exemplo.
Detalhes importantes No entanto, as configurações padrão não são suficientes para as operações regulares. O Mlmmj armazena a configuração no subdiretório control de cada lista, isto é, em /var/spool/mlmmj/documentfoundation. org/announce/control. Muitos arqui-
vos pequenos, conhecidos como ajustáveis na linguagem Mlmmj, lhe permitem personalizar as listas de acordo com as suas necessidades. É fácil habilitar as mudanças do arquivo e não é preciso reiniciar o Mlmmj para isso. As seções posteriores explicam as opções mais importantes.
As opções customheaders armazenam os cabeçalhos que são adicionados aos emails. Você também deve inserir os cabeçalhos recomendados na RFC correspondente (listagem 6). Estes cabeçalhos configuram o parâmetro Responder para à lista de endereços, fornece um endereço de contato para mensagens de erro e, principalmente, marca as mensagens conforme as listas de email a qual pertencem, evitando que “mensagens de ausência” sejam enviadas. Os cabeçalhos das listas fornecem aos emails informação adicional para se inscrever ou cancelar a inscrição daquela lista da qual o usuário faz parte. Alternativamente, a opção NO no parâmetro List-Post: indica que a lista é uma lista de anúncios sem a opção de responder. A opção prefix indica se você deseja inserir ou não uma lista de identificação antes do assunto, por exemplo, [libreoffice-users]. O texto deve ser adicionado ao arquivo entre colchetes e sem espaços. Você também pode configurar o seu acesso para gerenciar destinatários que cancelaram a inscrição. Se o arquivo subonlypost existe, apenas usuários registrados têm permissão para escrever mensagens; O Mlmmj descartará mensagens de endereços com a inscrição cancelada. Em vez disso, se você quiser mostrar estas mensagens ao moderador, precisará adicionalmente criar um arquivo modnonsubposts. O conteúdo não importa porque o Mlmmj apenas verifica se o arquivo existe. Você também pode configurar se deseja informar aos administradores da lista sobre supostos erros. Por padrão, o Mlmmj envia mensagens sobre todos os erros para os
administradores. No entanto, se você possui os arquivos notoccdenymails, noaccessdenymails, nosubonlydenymails ou nomaxmailsizedenymails no diretório local, o Mlmmj não emite um aviso nestes casos específicos: lista de endereços faltando no campo do destinatário, lista de acesso bloqueada, postagens de cancelamento de inscrição e assim por diante. Como regra geral, você vai querer reduzir o uso de notificações para evitar ter o seu próprio servidor de email sendo usado por terceiros maliciosos para o envio de spam. Você também pode configurar o tamanho máximo de um email, incluindo o anexo, no arquivo maxmailsize. O arquivo access, que define as restrições de entrada de email, também é importante. O seguinte código discard ^X-Spam-Flag: YES discard ^Subject:.*Auto Reply: allow
especifica estas mensagens marcadas como spam pelo SpamAssassin, com Auto Reply: o campo de assunto deve estar sem comentários. Os moderadores e proprietários de listas precisam adicionar aos arquivos moderators e owner, respectivamente (observe que não há a letra s no final de owner). Vários endereços não são um problema, no entanto, é aconselhável ter o mesmo conteúdo em ambos os arquivos. Outro recurso importante é a capacidade de remover alguns cabeçalhos usando o arquivo delheaders. Se você configurar um endereço de resposta estático para a lista, pode remover uma configuração de destinatário diferente do email de entrada conforme a seguir: Reply-To:
Listagem 5: Configuração de listas 01 sudo -u mlmmj /usr/bin/mlmmj-make-ml -s /var/spool/mlmmj/documentfoundation.org -L announce 02 sudo -u mlmmj /usr/bin/mlmmj-make-ml -s /var/spool/mlmmj/documentfoundation.org -L discuss 03 sudo -u mlmmj /usr/bin/mlmmj-make-ml -s /var/spool/mlmmj/global.libreoffice.org -L l10n
Linux Magazine #88 | Março de 2012
67
TUTORIAL | Gerenciamento de listas de email com o Mlmmj
Nome
Função
archive
Contém todos os emails em um arquivo por mensagem, enumerados em ordem crescente.
control
Configuração.
digesterd.d
Lista todos os inscritos que recebem um resumo.
mlmmj.operation.log
Arquivo de registro contendo inscrições e cancelamentos, por exemplo.
moderation
Mensagens aguardando pela moderação.
nomailsub.d
Lista todos os inscritos que optaram por uma variante sem email.
subscribers.d
Lista de todos os inscritos regulares.
text
Textos de templates, individuais para cada lista de email.
Tabela 1 Arquivos e diretórios importantes.
A capacidade de filtrar avisos de recebimento é muito importante; no pior dos casos, qualquer mala direta pode se encher de lixo eletrônico devido a avisos de recebimento. Os cabeçalhos a seguir são responsáveis por esta ação e devem ser adicionados definitivamente ao arquivo delheaders: Return-Receipt-To: Disposition-Notification-To: X-Confirm-Reading-To: X-Pmrqc:
Também é aconselhável criar um arquivo nolistsubsemail; este previne que usuários não autorizados possam ver a lista de inscritos. O Mlmmj também fornece alguns arquivos adicionais que são descritos no arquivo leia-me para os “ajustáveis”. Por exemplo, você poderia configurar uma porta SMTP diferente para assinar seus emails antes de enviar, e pode adicionar referências às mensagens. Além do arquivo control, existem
inúmeros outros arquivos e pastas interessantes e que são explicados na tabela 1.
Ferramentas O Mlmm fornece aos administradores inúmeras ferramentas úteis para gerenciar a mala direta. Por exemplo, a mlmmj-list fornece informação sobre as listas de seus inscritos (figura 1). O seguinte comando: sudo -u mlmmj /usr/bin/mlmmj-list -L /var/spool/mlmmj/global. libreoffice.org/users -c -d
conta o número de inscritos na lista de usuário, por exemplo. Já o comando: sudo -u mlmmj /usr/bin/mlmmj-list -L /var/spool/mlmmj/global. libreoffice.org/users -m
apresenta os endereços dos moderadores. Para inscrever manualmente um email e cancelar a inscrição de alguns destinatários, você pode usar o mlmmj-sub e mlmmj-unsub, respectivamente. Por exemplo, o comando:
Listagem 6: Cabeçalhos customizados 01 Reply-To: discuss@documentfoundation.org 02 Errors-To: postmaster@documentfoundation.org 03 Precedence: list 04 List-Id: <discuss.documentfoundation.org> 05 List-Unsubscribe: <mailto:discuss+help@documentfoundation.org> 06 List-Archive: <http://listarchives.documentfoundation.org/www/ discuss/> 07 List-Post: <mailto:discuss@documentfoundation.org> 08 List-Help: <mailto:discuss+help@documentfoundation.org> 09 List-Subscribe: <mailto:discuss+subscribe@documentfoundation.org> 10 List-Owner: <mailto:postmaster@documentfoundation.org>
68
sudo -u mlmmj /usr/bin/mlmmj-sub -L /var/spool/mlmmj/global. libreoffice.org/users -a archive@mail-archive.com -c
cria uma lista de arquivo com o The Mail Archive.
Arquivamento O Mlmmj se vê apenas como um gerenciador de mala direta e portanto vai arquivar o email de todas as suas listas no sistema de arquivos. No entanto, ele não inclui uma interface especial para fazer isso, o que força os administradores a buscarem uma solução separada. Provavelmente, eles escolham o Hypermail e o antigo MhonArc. De forma alternativa, você pode usar arquivos da Internet, como o Mail Archive, Gmane ou o Nabble.
Vantagens O Mlmmj foi criado para ser utilizado completamente na linha de comando; não existe uma interface web. As configurações são armazenadas em arquivos de controle e em um arquivo de opções. O fato de que o programa aceita ferramentas especiais e também o formato XML, facilita a automatização de scripts. Uma vantagem realmente grande é o fato de que as postagens para a lista são armazenadas em arquivos individuais, um arquivo por email. Esta abordagem oferece algumas vantagens decisivas comparadas ao Mailman: os backups são mais rápidos, porque você apenas precisa recuperar arquivos que estão enumerados em ordem crescente. Se já tiver recuperado um arquivo do Mailman de muitos gigabytes, seja através da rede ou usando um USB/ DVD, vai gostar desse recurso. Reconhecidamente, a configuração descrita acima não parece completamente intuitiva, no entanto, com alguns scripts, você pode reduzí-la a um simples comando que lhe permite configurar novas listas rapidamente. E
www.linuxmagazine.com.br
Gerenciamento de listas de email com o Mlmmj | TUTORIAL
a capacidade para moderar de forma conveniente as listas por email é um bônus importante que, pelo menos o Mailman, não suporta.
Problemas e soluções Apesar destas vantagens, faltam alguns recursos essenciais ao Mlmmj. Por exemplo, a equipe descobriu rapidamente que, embora ele ofereça opções para bloquear conteúdo, a ferramenta não possui filtros para conteúdo de mensagem. Em outras palavras, os emails ou mensagens HTML com anexos são descartados ou entregues sem quaisquer modificações e nenhuma das opções é uma grande escolha. O remédio é uma extensão autoprogramada chamada PyMIME que rastreia os elementos indesejáveis das mensagens antes de entregá-las. A versão totalmente reprogramada, a qual estará disponível em breve, até suporta dependendo do remetente, destinatário e tipos de MIME. O PyMIMI também supre outra falta do Mlmmj. Embora este possa adicionar uma referência a cada mensagem, ele falha ao pedir para converter esta referência em texto puro. Se você adicionar uma referência local composta na codificação UTF-8 para um email que utiliza o conjunto de caracteres ISO-8859-15, os caracteres não padronizados ficam ilegíveis. Para resolver esta questão, o PyMIME converte a referência para o conjunto de caracteres correto e pode também gerenciar templates com variáveis como nova versão. O gerenciamento das diferenças na inscrição varia, porque o Mlmmj também suporta um modo digest e uma variante sem email para usuários do, Gmane ou Nabble, por exemplo, além da entrega regular de email, também leva algum tempo para se acostumar. O programa não leva em consideração o fato de que a maioria dos usuários apenas escolherão um tipo de codificação, o que leva a endereços de cancelamento de inscrição ininteligíveis
Linux Magazine #88 | Março de 2012
tais como discuss+unsubscribe-digest@ de.libreoffice.org, um fato que quase sempre causa confusão. Este comportamento será aprimorado em uma próxima versão. A moderação por si só é feita por email. Os moderadores recebem mensagens de remetentes desconhecidos ou com conteúdo questionável como um anexo, e caso não respondam ao endereço de moderação dentro de sete dias, a mensagem expira. Infelizmente, a versão atual do Mlmmj distorce os templates da moderação após 100 caracteres, mas a próxima versão promete uma solução para isso. A comunidade ao redor do mantenedor australiano Ben Schimidt parece ser ágil e implementa sugestões rapidamente.
Conclusão O Mlmmj ainda é um projeto relativamente desconhecido, mas apesar de sua configuração um pouco complicada, ela é uma alternativa interessante ao Mailman [2] e ao Sympa [3]. A ampla abordagem de suas configurações abrange algumas opções interessantes e que merecem ser exploradas. ■
O autor Florian Effenberger é um defensor de software livre veterano. Ele é um dos fundadores da Document Foundation e membro de seu comitê gestor. Antes ele esteve ativamente envolvido com o projeto OpenOffice.org por sete anos, ocupando a posição de Marketing Projet Lead. Ele escreve regularmente para diversas publicações em alemão e inglês. Contatos e mais informações através do email floeff@documentfoundation. org.
Mais informações
Melhore o desempenho das suas máquinas e deixe seu computador trabalhar enquanto você sai de férias.
[1] Mlmmj: http://mlmmj.org/ [2] Mailman: http://list.org/ [3] Sympa: http://sympa.org/index
Gostou do artigo? igo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br azine.com Este artigo no nosso sso site: s http://lnm.com.br/article/6509 r/artic 6509
ADQUIRA O SEU EXEMPLAR NAS MELHORES BANCAS OU EM NOSSA LOJA VIRTUAL
LNM.COM.BR/SHOPPING 69
Agora você tem o controle sobre o desempenho do seu negócio. Gratuitamente . *
Finanças Fin
NF-e NF Compras
Vendas Estoques
Fornecedores
ERP – SISTEMA DE GESTÃO
Solução completa hospedada Solução completa hospedada emem nuvem (Cloud Computing) nuvem (Cloud Computing)
* Verificar termos e condições de uso no site.
Clientes
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 Saibamais maisem: em: www.vectory.com.br/kontroller www.vectory.com.br/kontroller +55 +5511 113104 31046652 6652
SOFTWARE
TUTORIAL | Virtualização com LXC
Virtualização com LXC
TUTORIAL
Sistema enlatado O LXC cria contêineres de sistemas que permitem a administradores isolar serviços críticos e de segurança. Aprenda como configurar um sistema dentro do contâiner. por Eva-Katharina Kunst e Jürgen Quade
A
s principais soluções para virtualização – como KVM, Xen, VMware ou VirtualBox – podem ser pesadas demais para algumas tarefas cotidianas, ou você pode precisar virtualizar um único serviço (por exemplo, um servidor de impressão ou um sistema de detecção de intrusos). Mostraremos como configurar um sistema leve de virtualização em contêiner chamado Linux Containers (LXC),
Listagem 1: Alterações em /etc/network/interfaces 01 02 03 04
auto lo iface lo inet loopback # LXC-Config # A interface de rede primária 05 #auto eth0 06 #iface eth0 inet dhcp 07 auto br0 08 iface br0 inet dhcp 09 bridge_ports eth0 10 bridge_stp off 11 bridge_maxwait 5 12 post-up /usr/sbin/brctl setfd br0 0
70
e para esta tarefa, utilizaremos o Ubuntu 10.4. Como o Linux Containers está integrado ao kernel, são necessárias apenas as ferramentos do espaço do usuário que estão no pacote lxc para testá-lo. A seguinte linha presente no arquivo /etc/fstab: none /cgroup cgroup defaults 0 0
monta o sistema de arquivos cgroup, de que você também vai precisar, no diretório /cgroup. O comando a seguir é tudo de que o usuário root necessita para executar em um único comando – como um Shell – um contêiner de aplicativo: lxc-execute -n foo -f /usr/share/doc/lxc/examples/ lxc-macvlan.conf /bin/bash
Listagem 2: /lxc/fstab.guest 01 none /lxc/rootfs.guest/dev/ ptsdevptsdefaults00 02 none /lxc/rootfs.guest/var/ runtmpfsdefaults00 03 none /lxc/rootfs.guest/dev/ shmtmpfsdefaults00
Esse código define o contêiner conforme o arquivo de configuração lxc-macvlan.conf e inicia o Shell. O prompt indica que o Shell está sendo executado em um ambiente virtualizado: ele possui um nome de host modificado. A lista de processos que o comando ps auxw retorna não é necessariamente longa, e há uma ausência completa de threads de kernel. Se você mudar para o diretório /proc, notará que há bem menos processos do que haveria no sistema host.
Descartáveis e reutilizáveis Criar um contêiner de sistema é mais complexo porque é necessário instalar e preparar um sistema completo para isso. Além disso, é preciso configurar a rede no host. Para tanto, são necessários também os seguintes pacotes: debootstrap, bridge-utils e lib-cap2-bin. Como parte da configuração de rede, você precisa de uma ponte para chegar até o contêiner com um endereço IP se-
www.linuxmagazine.com.br
TUTORIAL | Virtualização com LXC
parado. Depois que tiver o conteúdo da listagem 1 em seu arquivo /etc/ network/interfaces, o comando /etc/ init.d/networking restart habilita as configurações. Em seguida, crie um diretório – por exemplo, /lxc – para armazenar os arquivos do sistema do computador hóspede. O subdiretório abaixo representa o sistema de arquivos root do novo contêiner: mkdir -p /lxc/rootfs.guest
Também é necessário um arquivo /lxc/fstab.guest, que define os pontos de montagem para o /etc/ fstab de modo parecido (listagem 2). O próximo passo é preparar o sistema hóspede. Mude para o diretório que você criou antes e use o instalador Debian para criar um sistema Linux mínimo (neste exemplo, uma versão de 64 bits; para 32 bits, basta substituir amd64 por i386): debootstrap --arch amd64 lucid /lxc/rootfs.guest/ http://archive.ubuntu.com/ubuntu
Agora você precisará modificar o novo sistema: no arquivo /lxc/rootfs.guest/lib/init/fstab,
comente as linhas que montam os diretórios /proc, /dev e /dev/ pts . Depois designe um nome de host editando o arquivo /lxc/ rootfs.guest/hostname. No exemplo, simplesmente chamamos o sistema de guest. Para fazer isso basta digitar a seguinte linha em um novo arquivo /lxc/rootfs.guest/etc/hosts: 127.0.0.1 localhost guest
As próximas alterações serão feitas diretamente no sistema. É preciso executar o comando chroot para mudar temporariamente para o novo ambiente: chroot /lxc/rootfs.guest /bin/bash
Para se logar no contêiner mais tarde, use o OpenSSH, que pode ser instalado com o pacote openssh-server. Tudo de que você precisa agora são contas de usuário e uma maneira engenhosa para blindar os privilégios do usuário root, com alguma ajuda do comando sudo. Primeiro, crie um usuário e adicione-o ao grupo admin através dos comandos: u=linuxmagazine; g=admin adduser $u; addgroup $g; adduser $u $g
Figura 1 A configuração que habilitamos inicia o contêiner; os dados podem ser diferentes dependendo do sistema.
72
Em seguida, execute o comando visudo para editar o arquivo /etc/sudoers. Na linha onde se encontram os parâmetros %sudo ALL=(ALL) ALL substitua sudo por admin e saia do ambiente chroot com exit.
Antes de testar o contêiner que você configurou, será preciso preparar o arquivo /lxc/conf.guest, acrescentando o conteúdo da listagem 3 e modificando o endereço IP na linha 8. O comando
Listagem 3: Configuração do contêiner: conf.guest 01 02 03 04 05 06
lxc.utsname = guest lxc.tty = 4 lxc.network.type = veth lxc.network.flags = up lxc.network.link = br0 lxc.network.hwaddr = 08:00:12:34:56:78 07 #lxc.network.ipv4 = 0.0.0.0 08 lxc.network.ipv4 = 192.168.1.69 09 lxc.network.name = eth0 10 lxc.mount = /lxc/fstab.guest 11 lxc.rootfs = /lxc/rootfs.guest 12 lxc.pts = 1024 13 # 14 lxc.cgroup.devices.deny = a 15 # /dev/null and zero 16 lxc.cgroup.devices.allow = c 1:3 rwm 17 lxc.cgroup.devices.allow = c 1:5 rwm 18 # consoles 19 lxc.cgroup.devices.allow = c 5:1 rwm 20 lxc.cgroup.devices.allow = c 5:0 rwm 21 lxc.cgroup.devices.allow = c 4:0 rwm 22 lxc.cgroup.devices.allow = c 4:1 rwm 23 # /dev/{,u}random 24 lxc.cgroup.devices.allow = c 1:9 rwm 25 lxc.cgroup.devices.allow = c 1:8 rwm 26 lxc.cgroup.devices.allow = c 136:* rwm 27 lxc.cgroup.devices.allow = c 5:2 rwm 28 # rtc 29 lxc.cgroup.devices.allow = c 254:0 rwm
www.linuxmagazine.com.br
Virtualização com LXC | TUTORIAL
lxc-create -n guest -f /lxc/conf.guest
diz para o LXC criar a configuração. Esta etapa é necessária antes que você habilite o sistema com o comando lxc-start -n guest -d. A opção -d executa o comando em segundo plano, como um daemon. Sendo assim, agora existem duas opções para logar no sistema virtualizado. Digite: lxc-console -n guest
ou, se a rede já funcionar imediatamente: ssh linuxmagazine@192.168.1.69
Um pouco de paciência é essencial se você usar o acesso lxc-console. Podem se passar alguns minutos até que o contêiner de sistema ative sua conta. Depois disso, ele mostra os dados da figura 1.
Tem novidade na Coleção Academy!
Recicle seus contêineres Para interromper o sistema, execute o comando lxc-stop -n guest no host. Sempre que você alterar o arquivo de configuração /lxc/conf. guest, será necessário apagar a configuração antiga com lxc-destroy -n nome-do-hospede e depois criar a nova configuração com o comando lxc-create. Um passo-a-passo do LXC [1] oferece uma visão geral das etapas importantes. Há também um artigo sobre peculiaridades do uso da ferramenta no Ubuntu [2]. Além disso, um desenvolvedor do kernel da IBM escreveu um texto útil sobre ferramentas LXC [3]. Uma vez que todos os trechos de códigos de configurações estejam posicionados, o LXC é um alternativa rápida e fácil para isolar serviços menores. ■
Mais informações [1] LXC How-to, por Dwight Schauer: http:// lxc.teegra.net; [2] Virtualização com LXC no Ubuntu, por Beau Steward: http://www. nimdae.com/?p=576 [3] LXC: Ferramentas para Linux container, por Matt Heisley: http://www.ibm. com/developerworks/linux/ library/l-lxc-containers/
Gostou do artigo? go Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br azine.com r Este artigo no nosso sso site: s http://lnm.com.br/article/6497 r/artic 6497
Principais comandos de configuração de um roteador Cisco Temas e configurações avançadas Segurança, dicas, truques e resolução de problemas Disponível no site www.LinuxMagazine.com.br
Linux Magazine #88 | Março de 2012
73
SEGURANÇA | Túnel SSH com Sshuttle e PuTTY
SEGURANÇA
Configuração de conexões de túnel SSH com Sshuttle e PuTTY
Segurança via túnel Manter conexões à prova de sniffers é uma boa ideia se você acessa dados privados em redes públicas. O Sshuttle e o PuTTY o ajudam a criar uma conexão segura com pré-configuração mínima. por Thomas Drilling
O
acesso remoto através de uma rota insegura como a Internet envolve muitos riscos: fazer sniffers (varreduras) em conexões WLAN em um hotspot público, por exemplo, não é nada complicado para um intruso já acostumado a essas atividades. Muitas soluções e produtos que estão disponíveis no mercado permi-
tem estabelecer uma conexão segura em seu próprio servidor mesmo distante de casa. A complexidade dessas ferramentas variam de acordo com o tipo de uso e requisitos de segurança. Muitas dessas soluções existem somente para suportar os vários modelos de túneis. O túnel mais evidente no mercado é o VPN. De
Figura 1 O Sshuttle é muito útil porque depende somente de ferramentas existentes em um computador Linux.
74
um ponto de vista funcional, a tecnologia VPN tem a tarefa de criar um túnel provendo confiabilidade na conexão em meio à segurança da Internet. O túnel VPN clássico difere dos outros tipos em redes TCP/IP, pois transporta todos os pacotes de rede, independentemente dos protocolos que operam em um nível mais alto. Mas um problema com a VPN é que ela não pode ser configurada no meio do caminho: ele deve ter a configuração realizada desde o princípio, na máquina a ser acessada. A ferramenta Sshuttle [1] é útil para configurar uma VPN no improviso e rapidamente: ela se baseia em uma conexão SSH em combinação com um proxy SOCKs transparente. Além disso, oferece a opção de configurar uma conexão segura com ferramentas comuns. O Sshuttle é diferente de um túnel SSH baseado em TUN/TAP (quadro 1) por minimizar a necessidade de uma configuração preliminar.
www.linuxmagazine.com.br
Túnel SSH com Sshuttle e PuTTY | SEGURANÇA
Figura 2 Testando o túnel com o site de teste stilllistener.com. Se o túnel não estiver funcionando, você verá o endereço de seu roteador (esquerda). Se funcionar, você verá o endereço do host ou servidor remoto (direita).
Mão na massa Ao contrário do VPN clássico, um túnel SSH é mais fácil de configurar. Diferentemente de uma VPN, ele requer um túnel separado para cada protocolo. Por outro lado, pode operar sem a necessidade de programas complexos e especializados no servidor ou no cliente. O Sshutle foi criado por um estudante canadense chamado Avery Pennarun [2] e consiste de uma ferramenta de linha de comando
escrita em Python que dá aos usuários a possibilidade de operar uma VPN baseada em SSH entre Linux, BSD e Mac OS X. Para usar o Sshutle você precisa de um acesso SSH para a máquina remota, além do Python instalado nas duas pontas da conexão. O Sshutle implementa um servidor de proxy transparente que não requer nenhuma configuração e lhe permite pular as requisições de DNS. A ferramenta é relativamente nova e você provavelmente não a
Quadro 1: Túnel TUN/TAP As versões 4.3 ou mais recentes do OpenSSH oferecem a opção -w que permite aos usuários configurar uma VPN. Desde que a versão 4.3 foi lançada, os usuários passaram a ter a possibilidade de configurar túneis de nível 2 ou 3 com adaptadores virtuais de rede (interfaces TUN/TAP). No entanto, esse tipo de abordagem não é útil para o cenário descrito neste artigo, pois seria necessário fazer uma preparação no servidor e no cliente, o que consistiria em executar os módulos de kernel para dispositivos TUN/TAP. Além disso, você precisa configurar o daemon SSH no servidor ao habilitar a opção PermitTunnel yes. Os comandos na listagem 1 mostram como configurar um adaptador virtual de rede correspondente no servidor e no cliente. Após fazê-lo, o cliente tem a opção de usar um túnel SSH por meio de uma VPN através do comando: $ ssh -l usuário -p sshd-port -w0:0 servidor_alvo
Linux Magazine #88 | Março de 2012
encontrará nos maiores repositórios Linux. O código fonte da ferramenta licenciada sob GPLv2 está disponível no Github sob a forma de um arquivo tarball ou zip. Descompacte o programa em qualquer pasta. Você precisa somente do acesso root ao cliente. O servidor ou computador remoto deve possuir em execução o daemon SSH. Para implementar o software, faça o login no cliente como root, vá para o diretório contendo os arquivos do programa já descompactados e estabeleça uma conexão com o host remoto através do comando: $ sshuttle -r nome_usuario@ nome_host 0.0.0.0/0 -vv
Então, escreva a senha para a conta de usuário root no host remoto ou servidor e espere que o programa estabeleça uma conexão (figura 1). Se você não configurar nenhuma restrição para a rede (como 0.0.0.0/0, o que poderia ser abreviado para somente 0/0), o Sshutle vai dar provas de ser muito útil como proxy para
75
SEGURANÇA | Túnel SSH com Sshuttle e PuTTY
Figura 3 O cliente SSH PuTTY permite que usuários estabeleçam conexões SSH a partir de um host Windows.
qualquer tráfego TCP, por exemplo, caso o cliente esteja localizado em um ambiente no qual você não confia, como um hotspot público. É fácil testar se o túnel está funcionando. Basta ir até um website como http://www.stilllistener.addr. com/checkpoint1/test1. Se o túnel estiver funcional, você verá o endereço IP do servidor ou host remoto. Caso contrário, você verá o endereço de seu roteador local (figura 2). É aconselhável tomar alguma precaução se você pretende usar o Sshutle a partir da rede de sua empresa. Uma vez que o programa não requer privilégios de root do servidor no host remoto, ele deixa um buraco na sua infraestrutura de segurança e talvez infrinja a política da corporação. Além disso, o Sshutle é relativamente novo e não foi amplamente testado ainda.
O PuTTY é uma alternativa Se você tem acesso somente a um computador Windows, pode usar o cliente SSH PuTTY [3], que facilita muito a tarefa de configurar um túnel SSH (figura 3).
76
Figura 4 O PuTTY oferece uma caixa de diálogo separada para configurar o túnel SSH.
No lado do cliente, o programa age como um proxy SOCKS. Isso significa que você precisa redirecionar os serviços que quer passar pelo túnel – como HTTP em um navegador web – para os proxies. Como usuário, você precisa inserir somente o nome do servidor para o qual vai abrir uma conexão SSH na aba Session do PuTTY. Em seguida, salve o perfil criado. A caixa de diálogo para configurar o túnel SSH está localizada na árvore hierárquica de categorias à esquerda, sob Connection/SSH/ Tunnels (figura 4). Insira qualquer porta livre na caixa de texto Source port; assim você conseguirá acessar o proxy nessa porta (12222 neste exemplo). A seguir, habilite as opções Auto ou Dynamic e clique em Open. O servidor SSH pede a confirmação da assinatura na primeira conexão e, em uma janela de terminal, o leva
a escrever o nome de login com a senha correspondente. Se você quer estabelecer uma conexão semelhante em um cliente Linux, deve usar o seguinte comando: $ ssh -N -D12222 nome_do_usuario@servidor
A opção -N impede o início de um programa no servidor e a opção -D permite especificar a porta SOCKS local. Ao usar o PuTTY, é uma boa ideia adicionar a opção -f, que fará com que o aplicativo seja executado em segundo plano. Se todos os parâmetros estiverem corretos, o PuTTY abre uma conexão SSH e você pode adicionar o cliente PuTTY como proxy em algum outro aplicativo. No Firefox 8, a partir da caixa de diálogo Preferences, escolha Avançado e então clique na aba Rede. Na seção Conexão, clique
Listagem 1: Um túnel TUN/TAP 01 02 03 04 05 06
# Cliente ifconfig tun0 10.0.2.1 netmask 255.255.255.252 # Servidor # Endereço IP no computador alvo ifconfig tun0 10.0.2.2 netmask 255.255.255.252 route add -host host_alvo<> dev eth0
www.linuxmagazine.com.br
Túnel SSH com Sshuttle e PuTTY | SEGURANÇA
em Configurar conexão. Comece habilitando Configuração manual de proxy e insira o valor localhost para o host SOCKS. Em seguida, insira o número da porta que você selecionou na configuração do PuTTY e certifique-se de que a opção SOCKS v5 está habilitada. Se tudo isso funcionar, você agora conseguirá usar aplicativos web por meio do túnel. Para testar a configuração, acesse novamente um website que identifica seu endereço IP. Se ele mostrar o endereço do computador remoto em vez de seu endereço local de host, tudo está funcionando corretamente.
A diferença entre essa configuração e uma configuração VPN genuína é que, embora o tráfego de dados do aplicativo que você utiliza seja executado por meio do túnel configurado em suas configurações proxy, as requisições de DNS não fazem isso, o que significa que o túnel SSH não é adequado para navegação anônima na rede. Se quiserem colocar outros programas e serviços que não sejam HTTP no túnel, os usuários Linux devem ter em mente que alguns programas não suportam proxies SOCKS. Se esse é o caso, pode-se usar como alternativa o wrapper (empacotador)
tsocks, que oferece acesso à biblioteca alternativa tsocks [4].
Conclusão Se você quer evitar o esforço de configurar um software complexo para um eventual acesso VPN, o Sshutle é a escolha perfeita. O programa não requer redirecionamento de portas e, se necessário, coloca no túnel quaisquer protocolos que você usa de forma segura por meio da Internet. Além disso, o Sshutle é de grande ajuda se o daemon SSH no lado do servidor não tem um recurso interno de túnel habilitado. ■
Gostou do artigo? igo?
Mais informações
Queremos ouvir sua opinião. Fale conosco em m cartas@linuxmagazine.com.br zine.com r
[1] Sshuttle: https://github.com/apenwarr/sshuttle [2] Apenwarr: http://apenwarr.ca/ [3] PuTTY: http://www.chiark.greenend. org.uk/~sgtatham/putty/
Este artigo no nosso osso site: s : http://lnm.com.br/article/5871 r/artic 587
[4] Biblioteca tsocks: http://tsocks.sourceforge.net/
o ã ç i d e ª 3 1 I Livro P L Ce r t i f i c a ç ã o Este livro é o por recomendad
Li n u x Pro ÃO COLEÇ
ão Certificaç
o LPI-1 Certificaçã
LPI-1 10 1 – 10 2
eira
tonio Siqu
Luciano An
Luciano An ira
tonio Sique
Linux Magazine #88 | Março de 2012
LPIC-1 leto para Curso comp isada e ampliada.
rev 3ª edição os tópicos. em todos nova Exercícios ado para a 09. Livro prepar partir de 20 a ida vál prova
A Linux Magazine está lançando a 3ª edição revisada e ampliada do livro que te prepara para a Certificação LPIC-1 com as seguintes novidades: • Exercícios em todos os tópicos • Todo conteúdo ampliado para a nova versão da prova, atualizada em abril/2009 Garanta já o seu pelo site da Linux Magazine www.linuxmagazine.com.br
77
PREVIEW
Linux Magazine #89 Blindagem A Linux Magazine #89 ira trazer tudo sobre um assunto não muito conhecido dos brasileiros: Hardening. Nele você irá saber o que fazer para tornar os seus servidores e sistemas a prova de invasões e ataques antes mesmo que eles aconteçam. Para isso é preciso uma análise aprofundada das vulnerabilidades possíveis e um profundo conhecimentos das opções de configuração dos serviços. Tudo isso você descobre na próxima edição da melhor revista de tecnologia e software livre. ■
Admin Magazine #05 Monitoramento Na Admin Magazine #05, você irá conhecer as melhores opçoes em softwares para monitoramento de sistemas. Seja em redes Linux, Windows ou mesmo em redes mistas, o monitoramento de redes e sistemas está presente no dia a dia de nove entre dez administradores de sistemas. Se você é um deles, não perca nossa próxima edição!
82
www.linuxmagazine.com.br