Segurança total é algo impossível, e mesmo tendo os melhores recursos de segurança na configuração de firewalls ou permissões de acesso, os usuários não estão livres do roubo físico dos seus dados. Criptografar o sistema de arquivos da máquina é uma forma efetiva de proteger-se de roubo de dados.
Compilando um novo kernel usando o pacote kernel-package
Compilar um novo kernel usando o kernel-package é uma tarefa relativamente simples. Como usuário root deve-se entrar no diretório que contém o código fonte do kernel.
# cd /usr/src/kernel-source-2.6.6
A seguir, deve-se configurar o novo kernel antes da compilação. Há mais de uma maneira de fazê-lo. Pode-se usar três interfaces diferentes, que são ativadas com os seguintes comandos:
# make config
# make menuconfig
# make xconfig
O autor aconselha o uso de "make menuconfig", pois a interface de navegação de opções é mais intuitiva e simples de usar que as outras, e ainda não necessita de ambiente gráfico instalado, caso do make xconfig. Havendo um kernel da mesma série pré-instalado na máquina, basta escolher a opção "Load an alternate configuration file" e apontar para /boot/config-2.6.x. Com isso não será necessário reconfigurar todos os itens desejados, bastando apenas marcar as novas opções. Se não há outro kernel da mesma série instalado, é mais interessante refazer a configuração toda. Depois de definida esta etapa, basta escolher "Exit", e depois digitar:
# make-kpkg --revision crypto1.0 kernel_image
O nome (crypto) pode ser escolhido pelo usuário. O número (0.1) pode também ser escolhido pelo usuário, desde que observado o formato apresentado, não deixando espaço entre o nome e o número. A opção kernel_image diz ao make-kpkg para criar uma imagem do kernel. Para saber outras opções deve-se ler a man page do make-kpkg. Depois basta esperar que termine a compilação e haverá um pacote deb em /usr/src/ com o novo kernel. Então, basta instalá-lo com o comando:
# dpkg -i kernel-image-2.6.6-crypto0.1.i386.deb
Com isso, falta ainda configurar o gerenciador de inicialização usado. No caso dos testes é o lilo. Então, acrescenta-se uma nova entrada ao arquivo /etc/lilo.conf e roda-se o /sbin/lilo para aplicar as mudanças.
Carregando módulos necessários.
Para carregar os módulos necessários digita-se:
# modprobe cryptoloop
# modprobe bluefish
O módulo loop geralmente é carregado automaticamente. Para fazer que os módulos desejados sejam carregados no boot deve-se colocar os seus nomes no final do arquivo /etc/modules.
[4] Comentário enviado por androle em 01/10/2004 - 20:00h
Levei um puxão de orelha do meu orientador por não comentar o motivo de ter escrito esse artigo.
Artigo desenvolvido para a disciplina de "Segurança Computacional", do curso ARL - Administração em Redes Linux. (http://ginux.comp.ufla.br/arl), cujo tutor foi o professor Joaquim Quinteiro Uchôa.
[6] Comentário enviado por engos em 05/10/2004 - 13:43h
Parabéns pelo artigo, nem sabia que isso é possível... é inacreditável o que se pode fazer com o Linux!
Só uma pergunta, não consegui entender direito como os dados ficam armazenados. Significa que se a partição ou o arquivo estiverem criptografados, mesmo que eu entre (boot) com um rescue disk e monte a partição como praxe, não conseguirei acesso aos dados?
[7] Comentário enviado por androle em 05/10/2004 - 23:41h
Olá. Obrigado.
Sim, é isso mesmo! Eu testei isso aqui. Se vc não tiver os módulos cryptoloop, loop e blowfish (ou o que vc tiver usado para criptografar), e também a senha correta, os dados ficam inacessíveis. Não tem jeito.
Basta colocar a senha errada e vc não monta a partição ou arquivo. No meu notebook eu coloquei no script uma mensagem dizendo: "Tecle ENTER agora" no momento de pedir a senha. Assim, o sistema inicializa com o /home desmontado :)
Para poder montar a partição criptografada vc precisa da senha, senão o losetup associa a partilção/arquivo ao /dev/loop(0-7), mas o mount não consegue ler a partição e não monta nada. Os teus arquivos estão lá, mas não podem ser lidos, nem pelo root nem por ninguém.
O interessante é que se vc quiser pode montar um arquivo de, digamos, 150KB, como dispositivo de bloco, gravar informações nele e enviá-lo a alguém. Ai, se a pessoa sabe a senha ela pode montá-lo normalmente. Desse modo vc pode ter pacotes criptografados enviados por email sem ter de usar gpg ou outra ferramenta do tipo. E não é muito difícil fazer um pequeno script para enviar junto com o arquivo para facilitar a montagem e extração dos dados. Claro, a senha vc tem de combinar antes com a pessoa através de algum meio seguro de comunicação.