Arquivar

Archive for the ‘tutorial’ Category

[como criptografar um disco removível com LUKS]

Seg, 12 Out 2009, 284 Andre Deixe um comentário

O objetivo deste tutorial é ensinar em passos rápidos como criar uma partição de disco criptografada com o dm-crypt e o LUKS. O foco aqui são os discos externos. É possível usar estas mesmas instruções para criptografar uma partição do seu disco principal. Todavia, se você quiser criptografar o seu disco inteiro, inclusive a partição root, o modo mais simples é reinstalando o sistema, embora seja também possível fazê-lo com alguns acréscimos às instruções abaixo.

Passo 0: instalar o cryptsetup:

# apt-get install cryptsetup

Passo 0a: certificar-se de que os módulos necessários ao uso do LUKS foram carregados:

# modprobe dm_crypt

Passo 0b (opcional): preencher o disco com dados aleatórios (sobrescreve as informações anteriores, para o caso de um disco que já estava em uso, e ainda torna mais difícil um ataque criptoanalítico):

# time dd if=/dev/urandom of=/dev/sdb bs=1M
(isto provavelmente levará algumas horas)

Obs: antes de executar o comando acima é necessário descobrir qual arquivo no sistema (/dev/xxx) representa o disco desejado. Uma forma simples de fazê-lo é executar o comando “df -h” e identificar o disco pelo seu tamanho.

Passo 1: Particionar o disco usando o seu editor de partições de preferência. Na linha de comando o mais comum é o fdisk. No ambiente gráfico, o gparted realiza essa tarefa sem dificuldades, basta selecionar o disco desejado e clicar no ícone de nova partição, escolher o tamanho desejado e voilà.

Agora é o momento de decidir se a partição criptografada irá ocupar o disco inteiro ou se haverá outras partições não criptografadas ou criptografadas com diferentes chaves. Não crie um sistema de arquivos ainda, ele será destruído quando criptografarmos a partição.

Passo 2: Criar a partição criptografada:

# cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb1

Obs: o sistema pedirá por uma senha. Quanto mais longa e aleatória, melhor. Porém, lembre-se de anotá-la em algum lugar, porque se você esquecê-la perderá tudo o que tinha no disco, já que as chances de quebrar a criptografia são quase nulas.

Passo 2a (opcional): verificar se a partição foi criptografada:

# cryptsetup luksDump /dev/sdb1

Passo 3: Abrir a partição criptografada, nomeando-a:

# cryptsetup luksOpen /dev/sdb1 nomequeeugosto

Passo 3a: Verificar se tudo deu certo até aqui e se foi criado um arquivo representando a partição aberta:

# ls -l /dev/mapper/
...
brw-r----- 1 root root 253, 0 Jul 16 01:52 nomequeeugosto

Passo 4: Criar um sistema de arquivos na partição aberta:

# /sbin/mkfs.ext4 -c -m 1 -O dir_index,filetype,extent,sparse_super /dev/mapper/nomequeeugosto

Obs: Agora é o momento de escolher o sistema de arquivos desejado. Se você for utilizar o disco apenas em uma máquina Linux, o ext4 é uma ótima escolha. Por outro lado, se você pretende acessá-lo de máquinas Windows ou OSX, é aconselhável usar o FAT32, o NTFS ou o HFS. Para instruções sobre formatação com esses sistemas de arquivos, leia as páginas man ou google it.

E pronto.

Para acessar seu disco no Linux (supondo que você está usando o Gnome, o KDE ou o XFCE), basta conectar o disco e o gerente de desktop abrirá uma janela perguntando pela senha da partição criptografada. Para acessar a partição no Windows, existe um programa muito útil que inclusive pode ser instalado em uma partição não criptografada do seu próprio disco externo. Clique aqui para saber mais.

Referências: roysindre e saout.

[dd-wrt]

Sáb, 15 Ago 2009, 226 Andre Deixe um comentário

O propósito deste tutorial é explicar de forma detalhada o procedimento de instalação da firmware aberta dd-wrt em um roteador Linksys WRT54G V8.0. A dd-wrt pertence a uma família de firmwares derivadas do código original da firmware proprietária da Linksys, que, por ser baseada no kernel do Linux, ofendia os termos da GPL, o que forçou a empresa a liberar o código-fonte original. É importante ressaltar que a dd-wrt não é completamente livre e possui alguns binários proprietários, mas ainda assim é melhor, técnica e eticamente falando, do que permanecer com a firmaware original do equipamento.

Antes de mais nada, é bom esclarecer que, embora o dd-wrt e seus congêneres funcionam em uma extensa gama de roteadores de diversas marcas, o arquivo binário, sua versão e o procedimento de instalação variam de acordo com o aparelho. Assim, o presente tutorial é destinado especificamente ao equipamento acima (segundo o wiki o procedimento e softwares são idênticos para a versão 8.2 do mesmo aparelho), se você possui algum outro modelo, procure por instruções específicas ao seu ou então leia as instruções genéricas neste site e siga por sua conta em risco as dicas abaixo. Se você não sabe qual o modelo do seu aparelho, olhe na parte de baixo do mesmo e procure por um adesivo com alguma sigla semelhante.

Ressalvo ainda que o procedimento de mudança de firmware é extremamente delicado, existindo uma chance de que você “bricke” seu aparelho se algo der errado. Além disso, esse procedimento é uma violação do seu contrato com o vendedor do aparelho e compromete a validade de sua garantia, logo se algo de errado acontecer, você está por sua conta. Assim sendo, não me responsabilizo pelos eventuais danos que possam ocorrer por uma má instalação, tudo o que posso garantir é que segui estes exatos passos e instalei a firmware com sucesso e sem dores de cabeça.

Dito isto, vale como o incentivo o fato de que é possível ressuscitar um aparelho “brickado, procedimento que não é o objeto deste post, e também o fato de que o projeto já é um tanto antigo e possui uma robusta comunidade, o que diminui muito a possibilidade que exista um bug não descoberto e ainda garante um suporte caso algo aconteça.

Instalação

Pré-requisitos

Antes de iniciar a instalação da nova firmware no seu aparelho você precisa:

(i) do vxworkskillerGv8v3.bin, disponível no site do projeto;

(ii) da firmware nova, que no caso do aparelho acima, deve ser a versão micro dd-wrt.v24_micro_generic.bin, também disponível no site;

(iii) de um cabo ethernet ligado diretamente à porta 1 do seu roteador (não tente o procedimento via wireless), com todas as demais entradas livres, exceto à que liga o roteador com o modem que pode permanecer conectada;

(iv) configurar a conexão da sua máquina para que use o IP 192.168.1.100; a máscara 255.255.255.0; e a porta de saída 192.168.1.1;

(v) de um navegador de internet (de preferência um que não seja o Firefox/Iceweasel, já que alguns usuários alegaram ser incapazes de realizar o procedimento com ele – eu mesmo não consegui, usei o Arora);

(vi) um aplicativo tftp (no caso do Debian, tive problemas para usar o tftp e consegui realizar a transferência com o atftp).

O modo mais fácil de baixar a versão correta (existem “n” versões do software) dos arquivos acima é pesquisar pelo nome do aparelho wrt54g na página “Supported Hardware“, clicar na versão correta (Linksys WRT54G v. 8.0 – tome cuidado para não confundir com WRT54G-LA V.8) e baixar os softwares da página que aparecerá.

As instruções para configurar a sua conexão com a internet variam de acordo com o sistema operacional/software em uso. Eu uso o Debian com o Wicd para manipular as conexões. Neste software, com o cabo ethernet conectado, basta clicar nas propriedades da conexão e preencher os campos com os números acima. Creio que o procedimento seja praticamente idêntico com o networkmanager, padrão na maior parte das distribuições. Para instruções Windows e OSX, este site contém as instruções de forma bem simples.

O Procedimento

(i) desligue o seu roteador (puxe o cabo de energia);

(ii) realize o chamado reset físico (“hard reset”) 30/30/30. Em linhas simples, você precisa segurar o botão reset que está na parte posterior do aparelho durante trinta segundos enquanto ele está ligado e, sem deixar de segurar o reset, puxar o cabo de força, aguardar mais trinta segundos, religá-lo e esperar por outros trinta segundos e então soltar o botão. Este passo é muito importante, deixar de realizá-lo ou fazê-lo de forma inapropriada é a forma mais fácil de brickar o aparelho quando da execução da nova firmware;

(iii) abra o seu navegador e, na barra de endereços, digite o endereço do roteador, http://192.168.1.1;

(iv) uma tela de atualização da firmware aparecerá, possibilitando que você envie um arquivo, que neste caso deverá ser o vxworkskillerGv8v3.bin. Procure-o na pasta em que você o salvou e envie para a máquina;

(v) Muito importante! Aguarde enquanto o aparelho executa o software, os desenvolvedores indicam dois minutos, mas quanto mais tempo, melhor. Se você tiver sorte (eu não tive), após a execução deste software o navegador apresentará uma tela com uma mensagem dizendo para que você reiniciar o aparelho. Qualquer que seja o caso, após 2 ou 3 minutos, puxe o cabo de força do aparelho e ligue-o novamente;

(vi) Opcional. Faça um ping com o aparelho, para certificar-se de que suas configurações de rede estão corretas (conforme explicado acima) e que você consegue se comunicar com o equipamento. Na linha de comando, informe ping 192.168.1.1 (para encerrar segure CTRL-C);

(vii) Envie a nova firmware usando o tftp. No Debian, realizei isto com o comando atftp --option "mode octet" --verbose -p -l dd-wrt.v24_micro_generic.bin 192.168.1.1. No wiki estão as instruções para o Windows, para o OSX e para Linux genérico.

(viii) Aguarde enquanto a nova firmware é instalada, após sua execução o roteador será reiniciado automaticamente;

(ix) Opcional. Realize novamente um reset físico 30/30/30 (eu não fiz e não tive problemas por isto).

Após a reinicialização do aparelho, você poderá acessá-lo através de seu navegador de internet no endereço padrão http://192.168.1.1, se for pedida uma senha administrativa, o padrão é que o usuário administrador seja o root e a senha admin. Por razões de segurança óbvias, o ideal é que você altere a senha de imediato e, então, comece a configurar o aparelho.

As vantagens técnicas da firmware dd-wrt em relação à padrão do equipamento são inúmeras e foge ao propósito deste post listá-las. Um benefício imediato, no entanto, é poder aumentar a força do sinal transmitido pelas antenas e, assim, conseguir acessar sua rede, sem interrupções ou atrasos, de qualquer parte da sua casa ou até mesmo fora dela. O limite é de 251 mW, mas lembre-se que quanto mais próximo dele, mais será exigido do equipamento, o que pode diminuir sua vida útil. Vale a pena fazer uma pesquisa pela net para explorar melhor esta e outras vantagens do dd-wrt.

[fast boot]

Qui, 27 Nov 2008, 331 Andre Deixe um comentário

Como muito pouco se cria, mas tudo é copiável, compartilho aqui duas dicas muito úteis que encontrei no lifehacker, que por sua vez as chupinhou do ubuntukungfu. As duas são relacionadas à performance de inicialização do sistema e tem por foco o Ubuntu, mas podem ser aplicadas ao Debian e provavelmente à maior parte dos sistemas GNU/Linux.

1. Se você possui um processador com mais de um núcleo (core), por exemplo, o Intel CoreDuo, é possível fazer com que os scripts de inicialização sejam executados paralelamente ao invés de seqüencialmente, o que apresenta um ganho considerável em velocidade de inicialização.

Para tanto, basta editar o arquivo /etc/init.d/rc e alterar a palavra “none” na linha que diz CONCURRENCY=none, para “shell“. Isto pode ser feito com um editor de texto qualquer como o vim, o gedit ou o emacs.

2. Além disso, é possível criar um perfil personalizado da sua máquina que reduza o tempo de busca pelos scripts de inicialização.

Criar este perfil é muito simples, basta selecionar a opção de sistema padrão do menu do Grub e pressionar “e“. Se você estiver usando o Grub Legacy (0.97), aparecerá uma tela com três linhas. Mova o cursor até a segunda linha que é iniciada pela palavra kernel e pressione novamente “e“. Outra tela aparecerá. Ao final da linha em que estiver inclua a palavra “profile“. Pressione ESC e após “b” (para dar o boot). Este primeiro boot será muito mais lento do que o normal, pois o perfil será criado junto com a inicialização do sistema. A partir daí, porém, você obterá um ganho considerável na inicialização do seu sistema.

Apenas uma observação: este segundo procedimento depende de um software chamado readahead que não é instalado automaticamente no Debian. Portanto, antes de tentar o procedimento acima, certifique-se de que este pacote encontra-se instalado no seu sistema.

Todo o crédito ao autor do livro Ubuntu Kung Fu, Keir Thomas.

[debian_preferences]

Dom, 26 Out 2008, 299 Andre 2 comentários

O Debian é uma distribuição GNU/Linux conhecida por sua robustez e estabilidade. Esta confiabilidade da distribuição, contudo, tem um custo: tempo. Ao contrário do que ocorre em outros sistemas, um software somente entra para o Debian depois de ser longamente testado e corrigido.

Esse tempo de atualização quase não é sentido em relação à maior parte dos softwares que usamos, os quais nem sabemos que já se encontram desatualizados e raramente percebemos as diferenças quando são atualizados. Alguns, porém, são um caso a parte. São aqueles aplicativos de uso quotidiano que esperamos ansiosamente pelas atualizações, cheias de novas funcionalidades. É o caso, por exemplo, do Firefox, do OpenOffice ou do KDE.

Estes softwares contam com enormes comunidades que já trabalham segundo um processo contínuo de desenvolvimento que leva meses, às vezes anos, entre uma versão e outra. Quando são lançadas novas versões estáveis, esperar que entrem na versão estável do Debian parece simplesmente impensável. Considerando o ciclo normal de lançamento de novas versões estáveis do Debian, isto pode chegar a demorar um ano e meio

É possível evitar a letargia, burlando o ciclo normal do Debian de algumas maneiras:

1. Para os usuários da versão estável (atualmente “etch“, logo mais “lenny“), um modo fácil de fazê-lo é usando os repositórios do debian-backports. Este projeto tem por fim específico trazer nova vida à versão estável e, às vezes, desatualizada do Debian. Isto é feito recompilando os pacotes da versão teste ou instável do Debian, de modo que eles possam rodar na versão estável sem depender das bibliotecas novas daquelas versões.

Usar os repositórios do backports e instalar seus softwares é muito simples, basta:

  • adicionar a seguinte linha no seu arquivo /etc/apt/sources.list:

deb http://www.backports.org/debian etch-backports main

  • atualizar a lista de pacotes do apt, para que os backports sejam incluídos:
  • # apt-get update

    • instalar o pacote desejado com o comando:

    # apt-get -t etch-backports install <pacote>

    2. Outra maneira de conseguir o mesmo objetivo é construir um sistema misto. Isto é feito colocando repositórios de diferentes versões do Debian (estável, teste ou instável) no seu /etc/apt/sources.list, de forma que o apt terá diferentes versões de cada software disponíveis para instalação. Para realizar esta mescla, contudo, não basta apenas incluir os repositórios, do contrário sempre que for executado apt-get upgrade ou apt-get install a versão do software a ser instalada será a mais recente, ou seja, um upgrade de todo o sistema para a versão mais recente (teste ou instável). O arquivo /etc/apt/preferences pode alterar o modo padrão de funcionamento do apt.

    Assim, assumindo que a distribuição base seja a estável e que serão usados, eventualmente, alguns pacotes da teste ou da instável pode-se proceder da seguinte forma:

    • adicione as seguintes linhas no arquivo /etc/apt/sources.list:

    deb  http://ftp.br.debian.org/debian/  testing  main

    deb  http://ftp.br.debian.org/debian/  unstable  main

    deb  http://ftp.br.debian.org/debian/  experimental  main

    • adicione as seguintes linhas no arquivo /etc/apt/preferences:

    Package: *
    Pin: release a=stable
    Pin-Priority: 900

    Package: *
    Pin: release a=testing
    Pin-Priority: 500

    Package: *
    Pin: release a=unstable
    Pin-Priority: 100

    • atualize a lista de pacotes do apt, para que os novos pacotes sejam incluídos:

    # apt-get update

    • instale os pacotes específicos da versão teste, instável ou experimental usando o seguinte comando:

    # apt-get -t <versão> install <pacote>

    Voilá.

    Vale lembrar que os pacotes mais recentes não estão incluídos na versão estável justamente porque não foram devidamente testados com ela, logo, use-os por sua própria conta e risco. De minha parte, posso garantir que venho fazendo isso sem notar qualquer mal funcionamento no sistema.

    Para saber mais:

    # man apt-get

    # man apt_preferences

    [tradução]

    Ter, 22 Jul 2008, 203 Andre 2 comentários
    tille, machtelt, garrels

    tille, machtelt, garrels

    Começando na data de hoje (22.7.2008), iniciarei o trabalho de tradução para o Português de um guia de introdução ao uso do GNU/Linux feito para newbies. Este guia me ajudou muito na migração para o software livre, deixando muito claros os conceitos fundamentais que envolvem os sistemas baseados no kernel Linux ou mesmo aqueles chamados de Unix-like (no que se inclui uma vasta gama de sistemas operacionais, além do GNU/Linux, foco do guia).

    Assim, mesmo considerando que hoje em dia é possível migrar para o GNU sem ter lido um guia ou mesmo sem ter experiência com informática (falo aqui por experiência própria), entendendo que este guia pode ser muitíssimo útil a qualquer usuário que pretenda aproveitar as vantagens ofertadas pelo sistema.

    Como eu vim a descobrir, através do uso constante do GNU/Linux, a dificuldade que o usuário sente nos primeiros passos usando o sistema é meramente um problema de aproximação. Acostumados que estamos com o Windows, única experiência de alguns com um computador, nós esperamos que o GNU se comporte como e parta dos mesmos paradigmas do Windows e daí uma certa dificuldade e frustração. Além disso, a superabundância de material escrito e disponível online sobre o GNU pode ser difícil de lidar no início. Desta forma, este guia é muitíssimo útil para consolidar em um só documento todos os conceitos mais relevantes à interação com o sistema.

    Com base neste entendimento e no de que o idioma inglês, apesar de muito difundido, ainda pode ser uma barreira de acesso para muitas pessoas, pretendo realizar a tradução para o português deste guia. Como, entretanto, o trabalho de tradução é muito delicado e requer muitas horas de leitura, revisão, edição e formatação, peço aqui a sua ajuda: se você tem domínio do inglês ou do português ou de ambos e está disposto a colaborar, entre em contato comigo por email ou por um comentário neste próprio post.

    Lembrando que: (i) não é necessário conhecimento prévio do GNU (o trabalho é apenas de tradução, não iremos rever conceitos técnicos – termos técnicos já encontram tradução padrão); (ii) não é necessário conhecer os dois idiomas (se você só entende bem o português, pode ajudar revisando o resultado das minhas traduções, corrigindo a gramática, melhorando o estilo e os erros de ortografia que certamente ocorrerão); e (iii) mesmo que este post já tenha meses de idade quando você ler, entre em contato, o trabalho pode ainda não estar terminado e precisar de colaboradores.

    O guia encontra-se disponível no site do The Linux Documentation Project (tldp.org) e teve como principal autora a escritora belga Machtelt Garrels, as vezes chamada de Tille, também responsável pelo “Bash Guide for Beginners“. A primeira versão do guia é de 2002 e sua última atualização foi feita em junho deste ano. O livro foi publicado em inglês pela Fultus.