SistemasdeArquivosCriptografados

Icones/erro.png

ATENÇÃO: Esse guia não está finalizado (mas não é essa a natureza da web?). Esses procedimentos podem danificar as informações em seu sistema. Faça cópias de segurança primeiro. Seja cuidadoso. Leia toda a documentação. Você está avisado.

Note que existem outros oito guias abordando várias outras formas de fazer o que é descrito aqui. Você provavelmente encontrará um que seja baseado em LUKS ao invés desse. Mas leia esse guia de qualquer forma, pois ele é bom para dar uma idéia de como as coisas funcionam.

No Ubuntu 7.10, o Disco de Instalação Alternativo tem suporte para sistema de arquivos criptografados e LVM!

Sistema de Arquivos Criptografados

As pessoas guardam todos os tipos de informação sensível em seus computadores, mas as informações mais sensíveis talvez sejam guardadas sem que você saiba, na forma de páginas web arquivadas, cookies - dependendo das configurações de seu navegador. Clicar em "lembrar-me" em uma página web é um recurso conveniente de seu navegador, mas imagine que um ladrão (ou invasor) roube seu computador e agora tem acesso a sua conta de e-mail, do Mercado Livre, do MSN e tudo mais - possivelmente até informações sobre sua conta bancária. Esse problema é maior ainda quando se está usando um notebook, já que eles são fáceis de roubar ou até mesmo de perder.

A Criptografia pode ajudar nesse contexto. Tenha em mente que não há solução perfeita e um determinado intruso ainda pode ser hábil para encontrar uma maneira. Usando criptografia, porém, as chances disso ocorrer são bem reduzidas (porque se você não usa criptografia existe uma chance de seus dados ficarem disponíveis a qualquer um que os queira - isso é um fato).

Tenha em mente que criptografando seus dados eles estarão travados com um razoável salto de segurança. Isso significa que se você esquecer sua senha os dados ficarão travados. Por outro lado, se você escrever sua senha em uma nota e colá-la em seu monitor não estará usando criptografia. Criptografia é uma ferramenta, não uma "caixa preta" para proteger sua privacidade.

Um pouco de Teoria

Por favor, lembre que quaisquer números usados aqui são feitos como exemplo. Seus significados são como exercícios da mente e para dar um sentido aos números os quais você se relaciona quando está usando criptografia. Faça seu próprio sistema matemático baseado em seus dados, hábitos e requerimentos se você precisa retransmitir em criptografia: os seus dados que estão sendo protegidos e seu problema em abrí-los fora de seu local.

Pelo que eu sei no momento, as rotinas de criptografia empregadas pelo kernel do Linux são seguros e de confiança. Eu não as examinei a fundo, então não me culpe se elas não forem. Mas isso não significa que seus dados ficarão seguros uma vez que estão criptografados: se alguém descobrir uma imperfeição no algoritmo usado, então seus dados poderão ser abertos. Se alguém descobrir uma imperfeição na implementação, então seus dados poderão ser abertos. Se alguém obter um avanço na tecnologia ou na matemática, então seus dados poderão ser abertos. Se você for estúpido e perder suas chaves, então seus dados estarão perdidos a menos que alguém encontre uma imperfeição no algoritmo, na implementação do mecanismo de criptografia ou faça avanços na tecnologia ou na matemática.

Você foi avisado.

Como o Linux criptografa meus dados?

Tradicionalmente no Linux um dispositivo beefed-up loopback é usado para montar um arquivo. Esse dispositivo loopback faz a descriptografia do dado passando por ele. Existiam muitas versões diferentes e incompatíveis nos mecanismos de criptografia desses loopbacks, muitos suportando somente um algoritmo de criptografia.

Com o kernel Linux 2.6 o sistema de criptografia desses dispositivos foram depreciados e abandonados na linha principal do kernel completamente em algum ponto do ciclo de desenvolvimento dessa versão. Essa funcionalidade foi incorporada ao "Mapeador de Dispositivo" (Device Mapper), um framework genérico usado para mapear um dispositivo de bloco para outro. Tirando a criptografia, esse "Mapeador de Dispositivo" é o alicerce do LVM, de programas RAID e oferece recursos adicionais como fazer snapshots de arquivos de sistema.

Então como o "Mapeador de Dispositivo" funciona?

O "Mapeador de Dispositivo" é um filtro, processando dados passados por um dispositivo de bloco virtual, antes de passá-los para outro dispositivo de bloco.

Quando usado para criptografar dado o "Mapeador de Dispositivos" é usado para criar um novo dispositivo de bloco em /dev/mapper/. Esse dispositivo virtual pode ser usado como qualquer outro dispositivo de bloco de seu sistema (/dev/hdaX, etc). Todo dado passado para esse dispositivo é criptografados pelo "Mapeador de Dispositivos" (ou melhor, o módulo dm-crypt dele) usando um algoritmo simétrico de criptografia como AES. O dado criptografado é então escrito em outro dispositivo de bloco que atualmente armazena o dado.

Então eu não posso usar um arquivo para conter meu dado criptografado? Você continua referindo-se aos dispositivos de bloco...

Você precisa de um dispositivo de bloco para o "Mapeador de Dispositivos". Ninguém pára você transformando um arquivo para outro usando a (descriptografada) facilidade loopback. O sistema loopback continuará na linha principal do kernel, mesmo que a funcionalidade de criptografia usada para ser construída com ele seja removida.

OK, quais mecanismos de criptografia o "Mapeador de Dispositivos" suporta?

Você pode escolher todos os que são providos pelos módulos de criptografia de seu kernel. Os Kernels Ubuntu vêem com uma configuração completa, incluindo Twofish, AES, DES e outros.

Quais desses mecanismos eu deveria escolher?

Eu recomendo AES. Ele é razoavelmente rápido e acredita-se ser seguro. Evite o DES, ele é considerado muito fraco para oferecer uma segurança decente hoje em dia.

Quantos caracteres deve ter a senha usada pelo algoritmo?

Isso depende de suas necessidades de segurança: uma senha longa é mais segura, mas é mais demorado para descriptografar dados usando-a.

Para atacar um bom algoritmo de criptografia deve-se usar força bruta: ele tem que gerar cada senha e tentar descriptografar o dado com ela. O número de senhas possíveis implica diretamente no crescimento do tempo necessário para quebrar a criptografia. Deixe-nos brincar um pouco com alguns números:

Uma senha com 256 bits gera aproximadamente 1077 (1 seguido de 77 zeros) senhas diferentes enquanto que uma com 128 bits gera "somente" 1038 (1 seguido de 38 zeros). Atualmente um PC pode gerar e testar aproximadamente 3*105 (3 seguido por 5 zeros) senhas por segundo. Então, quebrar uma senha com 128 bits leva, no pior caso, mais ou menos 1025 anos (1 seguido por 25 zeros), que é um tempo maior do que a existência do universo. Essa senha deve ser segura para a maioria dos usuários.

Mas de acordo com a lei de Moore, a performance dos computadores dobram a cada 18 meses, então um PC cresce em sua performance com um fator de aproximadamente 1000 a cada 15 anos. Assim, se você é um governante e precisa ter certeza que documentos ainda estarão seguros em 150 anos, então deverá considerar que um simples PC será hábil para gerar e testar 3*1033 (3 seguidos por 33 zeros) senhas por segundo nessa época. Dessa forma, ele poderia quebrar a senha de 128 bits em menos de 30 minutos, enquanto que uma senha de 256 bits ainda levaria 1036 anos (1 seguido por 36 zeros).

Eu decidi o tamanho da senha agora. Como eu protejo a senha?

Protejer a senha é vital: com ela o invasor pode ter acesso instantâneo ao dado. Assim, o que pode ser feito para proteger essa seqüência crucial de bits?

  1. Você pode usar uma "senha por tempo" que é mudada em cada inicio de sistema. Essas senhas são usualmente criadas lendo /dev/Xrandom durante a configuração do dm-crypt. Nenhuma senha é armazenada dessa forma e nenhuma frase de acesso é necessária, mas esse método somente pode ser usado em sistemas de arquivo que podem ser formatados em cada reinicialização (como swap ou talvez /tmp, se você não quer reter as informações guardadas neles). Usar "Suspender" no disco será impossível com uma "senha por tempo" usada no dispositivo swap.

  2. Você pode armazenar a senha em um dispositivo removível. Dessa forma, ela estará disponível somente quando for necessário. Seus dados podem ser abertos quando o dispositivo for roubado ou copiado.
  3. Você pode gerar um "valor bagunçado" (ou número pseudo-aleatório) através de uma frase e usá-la como senha. A senha não é armazenada em qualquer dispositivo, mas você não pode mudar a frase (uma senha diferente seria gerada). Todas as pessoas com acesso aos dados criptografados precisam conhecer essa frase. Isso é pouco aplicável em um ambiente com múltiplos usuários.
  4. Você pode criptografar a senha. A senha criptografada é armazenada no computador com o dispositivo criptografado. Você pode mudar a frase criptografando novamente a senha com uma diferente e pode ter várias cópias dela criptografadas para várias pessoas.
  5. Você pode criptografar a senha e armazenar em um dispositivo removível.
  6. Você pode usar smartcards, etc. Essa é a opção mais segura.

Infelizmente eu não tenho um leitor de smartcard, então não posso seguir a última opção.

Eu quero usar uma frase. Quão grande ela precisa ser?

Se você decide usar uma frase bagunçada como senha ou uma senha criptografada que é aberta por uma frase, então é crucial escolher uma longa e forte. Como vimos antes, é praticamente impossível supor a senha em si, mas um invasor não tem que fazer isso se ele pode supor uma frase.

Deixe-nos fazer mais alguns exercícios mentais: assuma que uma frase pode ser feita com letras (maiúsculas ou minúsculas), números e um número limitado de pontuações. Isso gera aproximadamente 64 caracteres diferentes que podem ser usados. Esses caracteres podem ser representadas em 6 bits (26=64). Assim, se você está usando uma frase com uma simples letra, então um invasor precisará tentar um máximo de 64 vezes para obter sua senha. Se sua frase consiste em várias letras aleatórias, então cada uma delas reforça a dificuldade em 64 vezes! Usando palavras ao invés de uma seqüência aleatória de letras torna significativamente o ataque mais fácil para um invasor, então não na faça isso ou faça a frase mais longa (eu recomendo pelo menos dobrar o tamanho!).

Se você tem uma senha com 128 bits e quer uma frase que seja forte, então precisa no mínimo de 22 caracteres aleatórios nessa frase. Para uma senha de 256 bits, você precisa dobrar o tamanho: 44 caracteres. Uma senha realmente forte de 8 letras gera um máximo de 240 ou 1012 (1 seguido de 12 zeros) diferentes frases (senhas não tão aleatórias são muito fracas!), que é o bastante para proteger uma senha de 40 bits. Um simples PC rápido é capaz de tentar essas 1012 frases diferentes em aproximadamente 42 dias (assumindo 300.000 tentativas por segundo). Compare isso aos 1025 anos que ele leva para quebrar uma senha de 128 bits que possa ser protegida por essa frase.

Exemplos

Usando dm-crypt

O Ubuntu inclui os últimos recursos de criptografia na instalação padrão, mas não existe uma interface fácil (em geral, ferramentas drakloop do Mandriva) para esses recursos incluído nela. Antes de usarmos as capacidades de criptografia do Ubuntu nós devemos instalar essa interface.

  1. Instale cryptsetup. Ele é um pequeno arquivo, então é baixado rapidamente:

        sudo apt-get install cryptsetup
  2. Então vamos carregar alguns módulos necessários. Nós precisamos do dm_mode, dm_crypt e um crypto-Module. Existe uma variedade incluída no kernel padrão do Ubuntu, o mais otimizado é geralmente escolhido automaticamente e já está instalado.

    • Se você gostaria de verificar (ou se esse tutorial não estiver funcionando e você quer checar as coisas duas vezes) digite os seguintes comandos em um terminal:

    /sbin/modinfo /lib/modules/`uname -r`/kernel/crypto/*           |grep description
    /sbin/modinfo /lib/modules/`uname -r`/kernel/arch/i386/crypto/* |grep description
  • Isso irá listar os módulos disponíveis em sua máquina. O módulo aes é atualmente um pseudônimo para qualquer que seja o que estiver instalado em sua máquina. Procure por alguma coisa com aes nela - aes, aes-i586, aes-i386 e a assim por diante. Uma vez que um deles esteja instalado, você estará bem. Para garantir que esses módulos sejam carregados quando seu computador reiniciar, adicione-os para /etc/modules:

    $ sudo su           (para torná-lo root)
    # echo aes >> /etc/modules
    # echo dm_mod   >> /etc/modules
    # echo dm_crypt >> /etc/modules
  1. Escolha a partição onde você quer armazenar os datos criptografados (nesse exemplo nós usaremos a partição do disco rígido /dev/hda7) e crie o mapeador de dispositivo criptografado. Esse dispositivo é como um filtro conectado a partição o qual automaticamente e transparentemente descriptografa e criptografa os dados quando necessário.

sudo cryptsetup -y create crypt /dev/hda7
  1. Assegure-se que a partição (/dev/hda7 em nosso exemplo) AINDA NÃO ESTÁ MONTADA. De outra forma, você obterá uma mensagem de erro nada útil e enigmática. Se a partição já está montada, desmonte-a com o comando 'sudo umount'.
  2. Modifique os arquivos /etc/crypttab e /etc/fstab, assim nosso crypt-device é reiniciado e montado (para /crypt no nosso exemplo) no boot do sistema. Para fazer isso nós escrevemos as seguintes linhas para os arquivos:

    $ sudo su           (para torná-lo root) 
    # echo "crypt /dev/hda7" >> /etc/crypttab
    # echo "/dev/mapper/crypt /crypt reiserfs defaults 0 1" >> /etc/fstab
  1. Ao invés de diretamente montar /dev/hda7 quando seu computador reiniciar, agora ele primeiro reinicia o "filtro" de criptografia. Isso significa que toda vez que você reiniciar seu computador será requesitada a frase (para a senha) antes de proceder para a autenticação no sistema. Existem outras opções que você pode colocar no arquivo /etc/fstab as quais permitirão que você monte e desmonte seus dados criptografados em qualquer momento (você provavelmente apenas vai usá-las com CDs ou dispositivos USB), mas por enquanto nós focaremos o uso em partições, que podemos usar para criptografar /home (isso será abordado a fundo posteriormente nesse guia).
  2. Agora deixe-nos criar um sistema de arquivos no dispositivo mapeado:

    sudo mkfs.reiserfs /dev/mapper/crypt
  • E você pode montar o novo (criptografado) dispositivo digitando:

    sudo mount /crypt
  • Se você obter uma mensagem de erro que ele não pode ser montado, certifique-se de ter criado o diretório de destino (nesse exemplo, ele será o diretório /crypt).

    sudo mkdir /crypt
    sudo mount /crypt
  • Ele deve funcionar agora. Você pode, é claro, usar qualquer diretório de destinho que queira. O que nos leva ao próximo passo: protegendo nossa privacidade via criptografia de nosso espaço home.

Então, como posso criptografar meu Diretório Home?

As pessoas freqüentemente perguntam como criptografar seus diretórios /home. Essa é uma boa precaução, mas não terriívelmente significativa por ela mesma. Por exemplo, se você usa KDE encontrará todos os gêneros de informações de páginas web no diretório /var! Nomes de arquivos do sistema, informações de usuários - todos os gêneros de pistas armazenadas em vários outros diretórios no seu sistema. Alguns administradores experientes levam isso a um nível mais elevado e criptografam a instalação linux inteira, deixando somente um pequena partição /boot disponível a qualquer um sem frase (senha). Embora isso seja certamente um método válido, também é muito mais complexo e não é fácil de fazer nesse momento sem adquirir um produto de segurança de uso não livre (e por isso não verificável) como o drivecrypt ou o bestcrypt.

Um ótimo compromisso é criptografar todos os diretórios que provavelmente contém dados contrários aos arquivos de sistema. Isso inclue /tmp, /home, /var, /temp (alguns sistemas têm ambos) e a frequentemente overlooked partição /swap. Em muitos sistemas isso também inclue /root, desde que seja o diretório do usuário root e não esteja armazenado em /home. O problema é que se nós travarmos tão a fundo e precisarmos reiniciar o sistema sem montar o volume criptografado, nós talvez encontraremos um sistema que não funcione de qualquer maneira. Felizmente existem maneiras de contornar isso, as quais nós abordaremos (novamente) mais tarde.

Então, como criptografar todo esse material sem ter que fornecer cinco frases (senhas) toda vez que reiniciarmos? Alguns guias sugerem usar uma partição "mestre" (usualmente /home) que contém "arquivos senhas" os quais são usados para sucessivamente destravar as outras partições. Existe um par de problemas com esse método. Primeiro, se algum desses arquivos (usualmente completados aleatoriamente com letras sem sentido para torná-los incompreensíveis) estiver danificado isso pode deixar o sistema inteiro inutilizado até que uma operação de restauração seja feita (e com que freqüência VOCÊ faz cópias de seu sistema?). O outro problema é que isso não é realmente "seguro" de qualquer jeito, já que desde o momento que sua partição /home é montada as "senhas" para todas as outras partições estão disponíveis para qualquer um que possa obter acesso ao seu computador (até mesmo remotamente). Isso é realmente apenas ligeiramente diferente do que usar aquelas formas mencionadas anteriormente.

Um método melhor (embora um pouco mais difícil de seguir) é colocar tudo em uma partição e montá-la. Mas se nós tentarmos usar uma partição como /encrypted então não encontraremos coisa alguma funcionando, já que todos esses vínculos simbólicos para lugares como /usr/lib estarão quebrados. O diretório para o X11, por exemplo, contém dúzias de vínculos relativos que quebrarão se apenas tentarmos mover a partição /usr depois que o sistema foi construído.

Assim, nós movemos tudo para uma partição que não pode ser facilmente movida: a partição /usr. Então, nós vinculamos tudo que movemos de volta para o diretório raiz. Se isso tudo parece complicado não fique suado, existe um script disponível que tornará isso relativamente fácil. Tudo que precisamos fazer é particionar o sistema apropriadamente e seguir os passos descritos acima, reiniciar e executar o script e então rapidamente voltar para o nosso novo sistema protegido.

Particionando o sistema

Com o objetivo de construir um sistema propriamente protegido (da forma fácil) nós precisamos de três partições: a raiz ou partição / onde tudo mais reside, uma partição swap (criptografada) e uma partição para nosso /home (a qual atualmente seria /usr/home). Isso significa encontrar (ou criar) três partições durante ou depois da instalação do Ubuntu. Se você está colocando o Ubuntu em seu próprio disco isso será relativamente fácil. Se você é uma dessas almas indecisas que não pode confiar em fazer o Ubuntu seu único sistema, essa parte pode não ser tão fácil. De qualquer forma, esse assunto aparece com o título "instalação" e é objeto para outros guias.

Aqui está um exemplo de como você poderia particionar o sistema com o objetivo de usar um script "faça isso fácil":

Partição

Ponto de Montagem

Tipo do sistema de arquivo

/dev/hda1

/

reiserfs

/dev/hda2

/zzz

ext2

/dev/hda3

swap

swap

Note a partição chamada /zzz. Ela é importante! O script irá procurar por ela posteriormente e convertê-la para /usr. Por que não a fazemos /usr agora? Porque nós queremos que o sistema seja iniciável mesmo sem a partição criptografada montada. Nós criaremos o novo espaço /usr, então trocá-lo por fora do sistema como uma terceira placa comercial.

Assumindo que você tem agora suas partições criadas, vamos configurar os filtros de criptografia e lançar o script.

Primeiro, a swap criptografada. Isso é incrivelmente fácil (e um bom exemplo de porque usar o mapeador de dispositivo para criptografar no Ubuntu e parar de usar o antigo sistema loopback).

Digite esses comandos em um terminal:

    $ sudo swapoff              (para desmontar o dispositivo)
    $ sudo cryptsetup -d /dev/urandom create cryptoswap /dev/hda3
    $ sudo mkswap /dev/mapper/cryptoswap -L accessisdenied -v1

Mantenha em mente que /dev/hda3 é somente usado aqui porque representa nosso exemplo de instalação. Use qualquer que seja a partição que você configurou à parte para a swap durante a instalação que nós apenas citamos.

A linha acima diz ao nosso sistema para usar o gerador de número aleatório do linux, /dev/urandom, para criar uma senha aleatório para a swap quando nós reiniciarmos. Agora, como qualquer sistema digital ele não é completamente aleatório, mas é próximo o bastante (nós esperamos) e evita ter que fornecer uma frase (senha) extra toda vez que reiniciarmos. Existem outros métodos (como usar /dev/video0 se você tem uma placa de TV ou usar geradores externos de número aleatório), mas eles estão fora do campo desse guia.

Agora nós criaremos um outro mapeador de dispositivo para criptografar o espaço do usário. Esse é um pouco mais importante e nós definitivamente NÃO queremos esquecer a frase (senha), então o programa nos perguntará duas vezes para confirmar a nova frase:

   $ sudo umount /zzz           (novamente, certificar-se que nada está aberto em /zzz)
   $ sudo cryptsetup -y create cryptohome /dev/hda2

NÃO esqueça essa frase (no mínimo até que você queira!).

Agora nós temos ambos os dispositivos "mapeadores" para nosso novo sistema. Tudo que precisamos fazer é configurá-los para usá-los atualmente depois de uma reinicialização:

    $ sudo mkfs.reiserfs /dev/mapper/cryptohome         (sigua as instruções)
    $ sudo su -
    $ echo 'cryptohome /dev/hda2' >> /etc/crypttab
    $ echo 'cryptoswap /dev/hda3 /dev/urandom swap' >> /etc/crypttab

E então para fazer o sistema montar esses dispositivos mapeadores criptografados, nós editamos o arquivo /etc/fstab. A forma amigável e sem complicação de fazer isso é abrir um terminal como root (ou com sudo) e digitar "gedit /etc/fstab". Você verá algo como isso:

  # /etc/fstab: static file system information.
  #
  # <file system> <mount point>   <type>  <options>       <dump>  <pass>
  proc            /proc           proc    defaults        0       0
  /dev/hda1 /         reiserfs defaults 0 1
  /dev/hda2       /zzz            ext2    defaults        0       1
  /dev/hda3       none            swap    sw              0       0

Nós queremos editar esse arquivo para se parecer com:

  # /etc/fstab: static file system information.
  #
  # <file system> <mount point>   <type>  <options>       <dump>  <pass>
  proc            /proc           proc    defaults        0       0
  /dev/hda1 /         reiserfs defaults 0 1
  /dev/mapper/cryptohome /zzz     reiserfs defaults       0       1
  /dev/mapper/cryptoswap none     swap    sw              0       0

Note que tudo que fizemos foi mudar o "tipo" ("type") de nossa partição home para usar a mais avançada reiserfs e mudar as duas entradas "sistema de arquivo" ("file system") para apontar para os dispositivos mapeadores virtuais ao invés das partições físicas do disco rígido.

Até esse ponto nós nada fizemos que possa alterar a habilidade de seu sistema em reiniciar. Então, reinicie seu sistema e teste-o! Não esqueça que será solicitada ao menos uma frase (senha) nesse momento.

Finalizando

Com esperança seu sistema reiniciou bem e você agora vê uma partição criptografada /zzz em seu diretório raiz. Verifique isso novamente abrindo o diretório com o Nautilus e observando o número de "espaço livre no disco". Ele muda quando você entra no diretório /zzz? Ele deveria. Se ele não muda, reveja seus arquivos /etc/fstab e /etc/crypttab e veja onde você errou. Abra o Nautilus e navegue em /dev/mapper para certificar-se que você tem aqueles dois dispositivos mapeadores cryptohome e cryptoswap.

Por outro lado, se tudo está bem, é ladeira abaixo a partir daqui. Nós usaremos os scripts abaixo, mas devido a erros introduzidos pelo wiki eu sugiro que você baixe o pacote desse script e descompacte-o.

http://poptones.f2o.org/buildsafe-md5-ubuntu.tar.gz

  #!/bin/sh
  # Módulo          : buildsafe
  # Versão          : 0.1
  # Autor           : "Poptones"
  # Criado em       : Terça-feira, 28 de Setembro de 2004
  # Tradutor        : "LuizAquino"
  # Data            :  Domingo, 23 de Março de 2008
  # Esse script irá construir um território criptografado 
  # para o arquivo de sistema do usuário a partir de uma partição criptografada chamada /zzz.

 if [ `grep 'zzz' /etc/mtab -c` -gt 0 ]; then

 # NOTA: existe algum tipo de erro no wiki que causa o aparecimento de um caracter "?" na linha acima
 # e eu não posso corrigir isso. Esse script não funcionará até que você remova-o!

  #Se nós já executamos esse script não faça essa parte novamente.
  if [ ! -d /usr/var ]; then

  #NOTA: NOVAMENTE, veja o comentário acima. Não existe o caracter "?" suposto na linha acima!
  
    echo 'editando /etc/fstab para montar /zzz em /usr'
    cp /etc/fstab /etc/fstab.zzz
    sed 's/zzz/usr/g' /etc/fstab.zzz > /etc/fstab

    echo 'movendo partição /var para /usr/var...'
    cp --preserve=all -r /var /usr
    echo -n 'feito.'

    echo 'movendo partição /home para /usr/home...'
    cp --preserve=all -r /home /usr
    echo -n 'feito.'

    echo 'movendo partição /tmp para /usr/tmp...'
    rm -rf /usr/tmp
    cp --preserve=all -r /tmp /usr
    cd /usr/var
    rm -rf tmp
    ln -s ../tmp ./tmp
    cd /
    echo -n 'feito.'
    echo 'agora construindo nova partição /usr ... re-vinculando...'

    rm -rf /var
    rm -rf /home
    rm -rf /tmp
    ln -s /usr/tmp /tmp
    ln -s /usr/var /var
    ln -s /usr/home /home

    echo -n 'feito.'

  fi

  echo 'agora movendo /usr para a partição criptografada...'
  echo 'por favor seja paciente. Dependendo da velocidade de seu sistema'
  echo 'isso pode levar poucos minutos ou mais de uma hora.'

  cp --preserve=all -r /usr/* /zzz

  echo 'feito.'
  echo 'digite *reboot* para as mudanças fazerem efeito.'
 else 
  echo 'ponto de montagem /zzz não pode ser encontrado. certifique-se'
  echo 'de ter criado o ponto de montagem /zzz. Se você está certo de'
  echo 'que ele existe, execute esse script novamente depois de montá-lo.'
 fi
 #o arquivo termina aqui.

Reinicie seu sistema mais uma vez, pressione ESC para entrar no menu grub. Selecione "modo seguro" ou "modo de recuperação" ("failsafe" mode ou recovery mode) e inicie com o modo de usário simples, então vá ao seu diretório home (se você já não estiver nele) e digite "ls" para obter sua relação.

Viu o arquivo (script) que você salvou? Agora prenda a respiração e invoque-o digitando

   $ ./buildsafe

Isso deve iniciar quase imediatamente a fazer todo o gênero de material assutador. Mover os arquivos levará algum tempo. Não seja impaciente para reiniciar no meio desse nosso script ou você terá que reinstalar o Ubuntu. Esse script não sobrescreverá qualquer partição que você não tenha dado acesso a ele, mas se não for permitido continuar ele danificará seu OS, eis a razão pela qual eu recomendo fortemente executá-lo em uma instalação recente.

Você conseguiu chegar ao momento que pede a reinicialização? Digite "reboot", pressione Enter e então faça a autentificação novamente (o login).

Usando seu Sistema Criptografado

Agora quando você abrir o Nautilus e olhar para a raiz de seu sistema de arquivo verá ligeiras diferenças. Perceba como os diretórios /home, /var e /tmp possuêm vínculos simbólicos sobre eles. Você verá também o antigo diretório /zzz deixado aqui (não o remova, nós não fizemos isso com ele). Perceba como sua raiz relata xxxx porção de espaço vazio, mas quando você clica em /home ou /var ele muda. Ainda existe uma partição /usr na outra partição /, mas ele é montada escondida quando nós entramos a frase (senha) no boot.

Se você apenas pressionar Enter no boot verá uma área de trabalho que ainda funciona, mas ele é uma versão desprotegida. Já que você não obtém muita hostilidade com as atualizações enquanto está usando a partição criptografada você não terá problemas em voltar e seguir adiante na área de trabalho sem criptografia. Apenas matenha em mente que nada está protegido quando você usa essa outra área de trabalho - cada miniatura de imagem em cada diretório que você clica, cada página web que seu sistema "lembra-se", cada e-mail recebido permanecerão nesse espaço sem criptografia.

Se você quiser realizar uma atualização no sistema, apenas encerre a sessão atual e entre na área de trabalho "desprotegida" (isto é, reinicie e pressione Enter quando solicitada a frase - senha) e execute a atualização normalmente. Depois reinicie novamente no modo seguro ou de recuperação (digitando a frase quando solicitado) e monte seu território criptografado para /zzz digitando o seguinte:

  $ sudo umount /usr
  $ sudo mount -t reiserfs /dev/mapper/cryptohome /zzz

Agora execute novamente o script buildsafe. Ele verá que o sistema já foi migrado e todas as alterações serão movidas para o seu espaço criptografado.

Panáceas e caixas pretas

Não esqueça que esse NÃO é um sistema perfeito. Ele ainda é vunerável ao ataque por uma variedade de maneiras, a mais óbvia é enquanto se está conectado. Se seus dados criptografados estão acessíveis para você, então também estarão para qualquer um que invada o sistema. Se você está sobre uma conexão DSL, deixa o sistema a todo momento conectado ao seu espaço criptografado e for invadido, então seus dados serão possuídos e isso tudo foi em vão. Se você está fazendo alguma coisa suspeita e vive em um lugar onde autoridades possam entrar em seu home sem o seu conhecimento e deixa seu sistema ligado executando com seu espaço criptografado exposto, então seus dados serão possuídos. O mais importante: mesmo se você NÃO deixa o sistema ligado e executando quando não está por perto, ainda sim pode ser invadido por qualquer um com acesso à máquina. O método mais simples envolveria nada tão difícil como substituir seu script de inicialização que monta a partição criptografada por uma versão que grave suas frases (senhas) antes de passá-las para o programa cryptsetup. Por exemplo, apenas alterando duas linhas no arquivo /etc/init.d/cryptdisks de:

 echo "..."
 $CRYPTCMD create $dst $src <&1

Para algo como:

 echo "..."
 echo "password"
 read PASSWD
 echo $PASSWD >> /etc/AgoraVoceEstaPossuido
 $CRYPTCMD create -d /etc/AgoraVoceEstaPossuido $dst $src > /dev/null

Você nunca perceberia a diferença quando reiniciasse e o invasor teria sua frase (senha) em um arquivo de texto comum.

Pegou a idéia? Se alguém tem acesso físico à sua máquina, é mais difícil (se não impossível) mantê-lo afastado. Agora, o pessoal que criptografa todo o seu sistema diria: "-- Esse é o motivo pelo qual criptografar todo o OS é melhor". Mas, a menos que eles estejam iniciando por um CD, não existe coisa alguma que impeça alguém de fazer exatamente o que foi mostrado acima. E mesmo que eles ESTEJAM iniciando por um CD, existem programas para setores de boot e outros tipos de ataque que ainda podem funcionar. Em resumo, esse sistema irá proteger sua privacidade razoavelmente -- mantê-lo seguro de garotos inexperientes ou de ladrões comuns que roubam seu sistema, ou do cônjuge que você não quer que veja sua coleção de materiais adultos ou notas de amor para outros --, mas ele NÃO protege você de um invasor experiente. Se você vive em um lugar onde a posse de certos tipos de dados podem custar sua liberdade ou sua vida e se você os possui ou planeja possuir, então você precisa de um plano de segurança mais conciso, o qual está fora do campo desse guia.

Esse ponto não poderia ser mais estressante.

Agora, dada a verdade acima, existem outros passos que podemos dar para ajudar a ter mais certeza de que nosso sistema não está comprometido. Uma coisa que podemos fazer é um snapshot de todos os arquivos em nosso sistema enquanto eles estão recentes e então periodicamente checá-los por mudanças. E caso você não saiba, nós temos um script que faz isso bem. O que é descrito a seguir NÃO nos protege de uma invasão pelo setor de boot, mas deixará o sistema razoavelmente a salvo de invasores online ou mesmo de trojans físicos não sofisticados (a maioria das pessoas devem ficar mais atentas aos trojans).

Abaixo está outro script que usaremos (incluído no pacote citado acima):

 #!/usr/bin/perl
 # Módulo: md5logger.pl
 # Fonte: oneguycoding.com
 # Versão: desconhecida (ubuntu version 1.0)
 # Criado em: Quarta-feira, 10 de Novembro de 2004
 # Tradutor: "LuizAquino"
 # Data: 23/03/2008
 #
 # Esse módulo irá ler os diretórios listados abaixo e
 # verificá-los pelos cabeçalhos MD5 de cada arquivo 
 # no arquivo md5.log

 use File::Find;
 use Digest::MD5;

 umask 0077;

 $verbose=0;
 $check_rpm = 0;
 $update_changed = 1;

 $md5dir="/var/log";
 $md5file="$md5dir/md5.log";

 @flist=();
 find(\&findfile, '/sbin' );
 find(\&findfile, '/bin' );
 find(\&findfile, '/lib' );
 find(\&findfile, '/boot' );
 find(\&findfile, '/root' );
 find(\&findfile, '/srv' );
 find(\&findfile, '/initrd' );
 find(\&findfile, '/usr/bin' );
 find(\&findfile, '/usr/etc' );
 find(\&findfile, '/usr/games' );
 find(\&findfile, '/usr/include' );
 find(\&findfile, '/usr/kerberos' );
 find(\&findfile, '/usr/lib' );
 find(\&findfile, '/usr/libexec' );
 find(\&findfile, '/usr/local' );
 find(\&findfile, '/usr/lost+found' );
 find(\&findfile, '/usr/sbin' );
 find(\&findfile, '/usr/tmp' );
 find(\&findfile, '/usr/X11R6' );
 find(\&findfile, '/etc' );
 find(\&findfile, '/vmlinuz' );
 find(\&findfile, '/initrd.img' );

 if ( -f "$md5file" ) {
   PrivoxyWindowOpen(MD5FILE, "<$md5file") || die "Erro: $md5file não pode ser aberto\n";

   # carrega o cabeçalho
   while(<MD5FILE>) {
      chomp;
      ($md5,$file) = split(':');
      $md5list{$file} = $md5;
   }

   close(MD5FILE);
 }

 $update=0;
 $filen=$#flist+1;
 foreach $file (@flist) {

   $filen--;

   chomp;
   
   $md5 = md5($file);
   next if ( $md5 eq "" );

   printf STDOUT "%06d:$md5:$file\n", $filen if $verbose;

   next if ( $md5list{$file} eq $md5 );

   if ( $md5list{$file} == NULL ) {
      $update=1;
      print STDERR "Aviso: adicionando $file não encontrado em $md5file\n";
      $md5list{$file} = $md5;
      if ($check_rpm) {
         $output = `rpm -qf $file`;
         print STDERR "         rpm: $output";
      }
   }
   else {
      print STDERR "PERIGO: $file foi alterado";
      if ($update_changed) {
         print STDERR " (updated)\n";
         $md5list{$file} = $md5;
         $update = 1;
      }
      else {
         print STDERR " (não atualizado)\n";
      }
      if ($check_rpm) {
         $output = `rpm -qf $file`;
         print STDERR "         rpm: $output";
      }
   }
 }

 if ($update) {
   PrivoxyWindowOpen(MD5FILE,">$md5file") || die "Erro: não se pode escrever em $md5file\n";

   foreach $file (@flist) {
      print MD5FILE "$md5list{$file}:$file\n";
   }

   close(MD5FILE);
 }

 # cria a lista de arquivos
 sub findfile {
   if ( -f $_ ) {
      push @flist, $File::Find::name;
   }
 };

 sub makeFileDir
 {
 # recursivamente faz uma árvore de diretórios
 # em cima do filename em um dado caminho para o arquivo
 #
 # Se passar por isso,
 # /home/usrdir/Netscape/Users/usrdir/Mail/Inbox
 # ele cria o subdiretório como em,
 # mkdir -p /home/usrdir/Netscape/Users/usrdir/Mail
 #
   # primeiro obter o rid do arquivo
   my $dir = $_[0];
   my $path= "";
   my $rv;

   @dirs=split(/\//,$dir);
   $nd=$#dirs;
   for ($i = 0; $i < $nd; $i++) {
      if ( length($dirs[$i]) != 0 ) {
         $path="$path/$dirs[$i]";
         mkdir "$path", 0755;
      }
   }
 }

 sub md5 {
   my $file=$_[0];

   if (PrivoxyWindowOpen(FILE,"<$file")) {
      binmode(FILE);
      $fmd5 = Digest::MD5->new->addfile(*FILE)->hexdigest;
      close(FILE);
   }
   else {
      print STDERR "md5: erro abrindo fonte $file\n";
      return "";
   }
   return "$fmd5";
 }

 #fim do script

Agora execute o script como root:

  $ sudo perl md5logger.pl

Execute isso enquanto está montado em seu volume criptografado e ele será armazenado (razoavelmente) seguramente no diretório criptografado /usr/var/log (eu sugiro que você compacte-o logo depois e mantenha uma cópia em algum lugar seguro -- talvez criptografe o conteúdo). Você talvez escolha adicioná-lo aos seus scripts de login (embora isso leve alguns pares de minutos para executar) ou apenas executá-lo de tempos em tempos manualmente. Isso irá alertá-lo sobre cada arquivo adicionado ou alterado que for encontrado na lista de diretórios que nós fornecemos para ele -- os quais nesse caso são todos os diretórios criptografados em seu sistema básico Ubuntu. Ele também irá relatar sobre mudanças na área do /root. Enquanto muitas dessas mudanças são normais (toda vez que você entra um comando por um terminal root, por exemplo) ele irá no mínimo fornecer uma pequena lista de arquivos para checar (se preciso).

O que aparecer a partir daqui é o material antigo das entradas desse wiki. Eles foram deixados aqui porque muitas informações é sempre melhor do que poucas, mas tenha em mente que sistemas antigos (isto é, alguns sistema de arquivos loopback que você está familiarizado) está fora disso. Eu espero ter demonstrado acima que novos sistemas são realmente mais fáceis e mais lógicos para usar, mas escolher é melhor do que não escolher e algumas pessoas talvez tenham dados legais (embora eu direi a você que não consegui acessar dados que criptografei no Mandrake com qualquer outro sistema que não o Mandrake, então se você está considerando uma mudança essa talvez seja a hora de adotar o novo padrão). Também tenha em mente que montar sistema de arquivos "loopback" não é mais recomendável. Se você precisa somente criptografar poucos arquivos ou diretórios existem outros utilitários que permitirão isso E prover grande acessibilidade (por exemplo, arquivos RAR criptografados ou mesmo containers PGP)

Porém, se você está considerando uma mudança de um Linux para outro -- e você tem seus dados criptografados seguramente copiados em outro lugar (no mínimo temporariamente) -- o seguinte procedimento pode se provar muito útil, como permitir que você mova tudo para um espaço que está limpo, mas então imediatamente sobrescrevê-lo.

  1. Convertendo os dados com algo como:
    • Desmonte o dispositivo que será convertido: sudo umount /dev/vg01/data

    • Opcional: Use fsck no dispositivo (para certificar-se de que não há erros em iniciar com ele): sudo fsck /dev/vg01/data

    • Inicie o processo de conversão: sudo dd if=/dev/vg01/data of=/dev/mapper/crypt bs=4k

    • Cheque o comando duas vezes já que isso irá sobrescrever o conteúdo dos dispositivos envolvidos.
    • Espere, isso pode levar algum tempo.
    • Uma vez que a conversão terminou use fsck novamente no novo dispositivo: sudo fsck /dev/mapper/crypt

Isso pode ser usado ao contrário para mover um dispositivo de criptografado para plano. Adicionalmente, você pode usar isso com 2 diferentes mapeadores para re-criptografar o dispositivo com uma nova frase (senha) ou com opções diferentes incluindo cypher e tamanho de senha.

Páginas Web

Usando losetup

Para começar nós criaremos um arquivo, ele será então montado como um ext3 e sistema de arquivo criptografado com algum algoritmo.

  1. O primeiro passo é carregar cryptoloop:

        sudo modprobe cryptoloop && lsmod | grep cryptoloop
    • Você deverá ver a saída:

          cryptoloop              3584  1
          loop                   16264  2
  2. Os números podem ser diferentes, mas você verá ambos cryptoloop e loop. O próximo passo é checar qual o tipo de algoritmo de criptografia nós temos, use o seguinte comando (note o backticks):

     sudo modinfo /lib/modules/`uname -r`/kernel/crypto/* | grep description
    • Em um kernel Ubuntu regular você verá algo como:

          description:    ARC4 Cipher Algorithm
          description:    Blowfish Cipher Algorithm
          description:    Cast5 Cipher Algorithm
          description:    Cast6 Cipher Algorithm
          description:    CRC32c (Castagnoli) calculations wrapper for lib/crc32c
          description:    Null Cryptographic Algorithms
          description:    Deflate Compression Algorithm for IPCOMP
          description:    DES & Triple DES EDE Cipher Algorithms
          description:    Khazad Cryptographic Algorithm
          description:    MD4 Message Digest Algorithm
          description:    Michael MIC
          description:    Serpent Cipher Algorithm
          description:    SHA1 Secure Hash Algorithm
          description:    SHA256 Secure Hash Algorithm
          description:    SHA-512 and SHA-384 Secure Hash Algorithms
          description:    Quick & dirty crypto testing module
          description:    Twofish Cipher Algorithm
  3. Nós usaremos o Twofish Cypher para criptografar nosso arquivo de 100Mb como um sistema de arquivo:

        dd if=/dev/zero bs=1M count=100 of=mycryptofile
  4. Nós criamos o targetfile, como um arquivo vazio de 100Mb. O próximo passo é montar o arquivo com o comando losetup usando Twofish Cypher (seja cuidadoso, ele solicitará uma senha, não confunda isso com a solicitação de senha do sudo. Nós já autenticamos com o sudo e por isso ele não precisa de uma senha. Use uma nova e lembre-se dela!):

        sudo losetup -e twofish /dev/loop0  mycryptofile
  5. Crie o sistema de arquivo ext3 (nós usamos ext3 porque ele é o melhor tipo para um sistema de arquivo pequeno, enquanto ainda tiver em journal):

        sudo mkfs.ext3 /dev/loop0
  6. Crie o diretório onde deseja montar o sistema de arquivo:

        sudo mkdir /mnt/cryptoloop
  7. E finalmente monte-o:

       sudo mount -t ext3 /dev/loop0 /mnt/cryptoloop/
  8. Se você não obter qualquer mensagem de erro, então você criou um ponto de montagem para todas as suas informações confidenciais. Copie arquivos para /mnt/cryptoloop/ e eles serão criptografados. Para desmontá-lo e desabilitá-lo, use os seguintes comandos

        sudo umount /mnt/cryptoloop
        sudo losetup -d /dev/loop0

Como nós começamos a usá-lo? Repita os passos 4 e 7 (NÃO o 5, você apagaria seus dados) para iniciar o uso e o passo 8 para parar seu "sistema de arquivo-em-um-arquivo" criptografado. BTW lembre sua senha, se você esquecê-la seus dados estarão seguros para sempre, de todo mundo.

Você talvez queira escrever duas funções e um pseudônimo para esses passos em seu ~/.bashrc como:

Também é possível deixar mount fazer o trabalho de chamar losetup. Tudo que você tem que fazer é adicionar uma entrada similar a seguinte no seu /etc/fstab:

    echo "mycryptofile /mnt/cryptoloop ext3 noauto,encryption=twofish,user,exec 0 0" >> /etc/fstab

Agora você está hábil para montar/desmontar o cryptoloop com um simples:

    mount /mnt/cryptoloop
    umount /mnt/cryptoloop

Swap e Home Criptografados com LUKS

Por Stefano Spinucci virgo977virgo@googlemail.com

Introdução

Notas

NOTA#1 nesse tutorial assumimos que:

  • a antiga (sem criptografia) e a nova (criptografada) swap estão na partição '/dev/hda2'
  • o novo home (criptografado) está na partição '/dev/hda3'

Substitua '/dev/hda2' por sua partição swap real e '/dev/hda3' por uma partição vazia que se tornará sua nova partição home criptografada.

NOTA#2 DM-Crypt funciona transparentemente traduzindo (no kernel) entre uma partição física no disco (a qual é criptografada) e uma partição lógica a qual você pode montar e usá-la normalmente; então, por exemplo, para operar na sua partição home você deve usar /dev/mapper/home ao invés de /dev/hda3.

Alertas

Criptografar uma partição é uma operação destrutiva; assim, sua nova partição home (/dev/hda3) deve estar vazia, porque todos os dados nela serão apagados.

Dados não criptografados no antigo diretório home não serão apagados e estarão disponíveis, por exemplo, com um live CD; então, você não deve colocar qualquer dado sensível no diretório home antes de criptografar.

Por outro lado, se você tem dados sensíveis para apagar de forma segura do antigo home não criptografado, você deve usar shred no antigo diretório home.

Se a partição contendo o antigo diretório home estiver formatada com um sistema de arquivo journaled (JFS, ReiseFS, XFS, Ext3, etc), você deve dar o boot com um live CD e usar shred em toda essa partição.

Se a partição onde você usou o shred é a mesma que contém o OS, reinstale o Ubuntu e finalmente monte o home criptografado criado anteriormente.

Referências para apagar de forma segura:

Senhas fortes

Lembre-se que a força de uma corrente está no seu elo mais fraco e na corrente da criptografia a senha é sempre o elo mais fraco.

Assim, escolha uma senha forte ou seus dados não estarão mais seguros do que sem criptografia.

Referências para senhas fortes:

Instalar cryptsetup

Habilite o repositório 'community maintained (universe)' no gerenciador de pacotes Synaptic ou modifique o arquivo /etc/apt/sources.list (lista de fontes de repositório do apt)

Instale cryptsetup:

 # apt-get install cryptsetup

home criptografado

desmonte (se estiver montado) /dev/hda3

sudo umount /dev/hda3

Cheque a partição por erros (e espere muitos minutos...):

# sudo /sbin/badblocks -c 10240 -s -w -t random -v /dev/hda3

Complete o disco com dados aleatórios (e espere mais alguns minutos...); /dev/urandom não é tão aleatório quanto /dev/random, mas é o melhor. Solução prática disponível:

 # sudo dd if=/dev/urandom of=/dev/hda3

Crie uma partição LUKS:

 # sudo cryptsetup --verify-passphrase --verbose --hash=sha256 --cipher=aes-cbc-essiv:sha256 --key-size=256 luksFormat /dev/hda3

NOTA: Se você obter erros de que o kernel talvez não usa dm-crypt, tente o comando modprobe dm-crypt e tente criar a partição LUKS novamente; se isso ajudar, talvez você também queira adicionar o módulo dm-crypt ao arquivo /etc/modules.

Fixe o mapeador de dispositivo:

 # sudo cryptsetup luksOpen /dev/hda3 home

Confirme se isso funcionou:

 # sudo cryptsetup status home
/dev/mapper/home is active:
  cipher:  aes-cbc-essiv:sha256
  keysize: 256 bits
  device:  /dev/.static/dev/hda3
  offset:  2056 sectors
  size:    20962706 sectors
  mode:    read/write

Crie o sistema de arquivo (em geral, ext3):

 # sudo mke2fs -j -O dir_index,filetype,sparse_super /dev/mapper/home

Monte temporariamente, para copiar dados do antigo home:

 # sudo mount -t ext3 /dev/mapper/home /mnt

Copie os dados do antigo home:

 # sudo cp -axv /home/* /mnt/

Desmonte a montagem temporária:

 # sudo umount /mnt

Montagem permanente

Ubuntu 6.06

Insira em /etc/fstab:

# <file system>    <mount point>   <type>   <options>   <dump>  <pass>
/dev/mapper/home   /home           ext3     defaults    1       2

Depois disso, adicione uma entrada em /etc/crypttab:

# <target device>   <source device>   <key file>   <options>
home                /dev/hda3         none         luks

Reinicie e a criptografia do home está feita.

Notas

Com as instruções acima sobre criptografar o home, você também pode criptografar partições de dados genéricos (outras que não o home) e pode montá-las permanentemente de duas formas.

A primeira técnica é mostrada acima na montagem do home e requer um senha durante o carregamento do kernel.

A segundo técnica nós explicamos aqui. Nela a senha será solicitada bem no fim do processo de boot, na autenticação (login) do Gnome:

  • não faça qualquer modificação em /etc/fstab ou /etc/crypttab
  • adicione a partição criptografada para /etc/pmount.allow (no nosso caso, /dev/hda3)

Isso dará a você a conveniência de entrar com a senha no fim do processo de boot ao invés do meio. Porém, um bug é que sua partição criptografada será sempre chamada de 'usbdisk', sendo ela ou não de um 'disco usb'.

Montagem e Desmontagem manuais

Se você tiver criptografado outras partições que não a home e não quer que elas sejam destravadas no boot, então você precisa montá-las e desmontá-las manualmente.

Montagem

Fixe um dispositivo mapeador:

 # cryptsetup luksOpen /dev/hda4 data

Montagem:

# mount /dev/mapper/data /media/data

Desmontagem

Desmontagem:

# umount /media/data

Apagando o dispositivo mapeador:

# cryptsetup luksClose data

swap criptografada

Antes de configurar uma swap criptografada, o arquivo /etc/fstab tem uma entrada swap como essa:

# <file system>   <mount point>   <type>   <options>   <dump>  <pass>
/dev/hda2         none            swap     sw          0       0

Agora apenas substitua em /etc/fstab o /dev/hda2 pelo nome do novo dispositivo /dev/mapper/cswap:

# <file system>     <mount point>   <type>   <options>   <dump>  <pass>
/dev/mapper/cswap   none            swap     sw          0       0

Depois disso, adicione uma entrada em /etc/crypttab:

# <target device>   <source device>   <key file>    <options>
cswap               /dev/hda2         /dev/random   swap

Reinicie. É só isso aí! O dispositivo swap criptografado está feito; confirme se ele funciona:

# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/mapper/cswap                       partition       3148700 0       -1

# sudo cryptsetup status cswap
/dev/mapper/cswap is active:
  cipher:  aes-cbc-plain
  keysize: 256 bits
  device:  /dev/.static/dev/hda2
  offset:  0 sectors
  size:    6297417 sectors
  mode:    read/write

Leia a página de manual crypttab(5) para mais informações.

Ferramentas

Referências

Créditos

Original: Encrypted Filesystem Howto

Autor: Community Ubuntu

Tradutor: LuizAquino

Data: 24/03/2008



CategoryRevisada

SistemasdeArquivosCriptografados (last edited 2011-09-19 23:19:03 by localhost)