Aprenda a criar um repositório criptografado para arquivos e diretórios sem a necessidade de (re)particionar o disco rígido.
Introdução
Muitas vezes necessitamos de um local seguro em nosso disco rígido para armazenar informações confidenciais. Uma excelente opção para isto é o pacote cryptsetup, que permite criar um volume criptografado, baseado em um dispositivo de blocos e acessível somente através de uma senha.
Ocorre que muitas vezes não possuímos uma partição livre no HD para fazer isto, e o processo de redimensionar uma partição para tal finalidade não é algo trivial e isento de riscos.
Uma boa solução para isto é criar um arquivo vazio em um sistema de arquivos já existente e utilizá-lo como um dispositivo de blocos, o que pode ser feito através do programa losetup
O losetup associa um arquivo comum a um dispositivo de "loop", passando então a ser visto pelo sistema operacional como um dispositivo de blocos, podendo ser criptografado, formatado, montado e utilizado para armazenar seus dados confidenciais.
Você poderá então copiar para ele seus arquivos e diretórios contendo informações sigilosas e, após o uso, desmontá-lo e "fechá-lo", tornando-o inacessível a terceiros que não possuem a senha. Essa abordagem é especialmente interessante para uso em dispositivos móveis tais como notebooks e mídias removíveis, que mesmo em caso de roubo estarão protegidas contra a violação das informações confidenciais.
Mas lembre-se: nenhum dispositivo de segurança é perfeito, portanto lembre-se de manter sempre um backup atualizado de seus dados mais importantes em local seguro e acessível por você.
Atenção: As informações deste artigo não foram testadas em ambiente "de produção", e somente em caráter experimental; não nos responsabilizamos por quaisquer danos ou perdas de qualquer natureza que possam advir da utilização destas informações, bem como de sua implementação prática, a qualquer título; os direitos sobre as marcas e programas porventura aqui mencionados pertencem a seus detentores legais, bem como quaisquer responsabilidades legais que porventura houverem em relação à sua utilização.
Sugerimos fortemente a implementação dos procedimentos aqui descritos em caráter experimental, ficando sua posterior utilização para outras finalidades a exclusivo critério e responsabilidade dos leitores ou de quem quer que venha a utilizar estas informações.
Provendo os suportes no kernel
Em primeiro lugar é necessário prover os devidos suportes no kernel:
* Suporte a dispositivo de loop (sugiro NÃO habilitar a subopção "cryptoloop");
* Suporte ao device mapper (subopção do item "RAID e LVM");
* Suporte a criptografia AES (subopção do item "CRYPTOGRAPHIC OPTIONS").
Apesar dessas opções pelo visto estarem habilitadas por padrão no kernel 2.6, é conveniente verificar e habilitá-las se for preciso.
Repare que a subopção "cryptoloop" do item "Loopback device support" não tem nada a ver com o "dm-crypt", que utilizaremos através do cryptsetup, e talvez seja conveniente não habilitá-la para evitar problemas; uma vez que, pelo menos até o Kernel 2.6.21, ela tinha problemas com sistemas de arquivo com "Journaling" (ext3, raiserfs) e talvez cause algum tipo de conflito ou incompatibilidade com o "dm-crypt".
Então verifique se os seguintes itens na árvore de compilação de seu Kernel estão como abaixo (make menuconfig):
Se for necessário, recompile o kernel e reinstale-o com as opções acima como estão. Para maiores informações sobre como recompilar o kernel, consulte a documentação de sua distribuição ou disponível em outras fontes sobre o assunto.
Provendo outros pré-requisitos
Uma vez providos os devidos suportes no kernel, instale os seguintes pacotes, se já não estiverem instalados em sua distribuição:
* util-linux - normalmente provê o programa "losetup";
* cryptsetup.
Observação importante:
Se você desejar, poderá criar o volume criptografado em uma partição comum, como por exemplo /dev/hda5; se for o seu caso, você não precisará criar o arquivo vazio abaixo mencionado, nem utilizar o programa "losetup" para associá-lo e desassociá-lo; neste caso, vá direto para a próxima página, ignore tudo o que for dito em relação ao programa "losetup" e substitua o dispositivo de blocos aqui mencionado como /dev/loop1 pelo nome do dispositivo de blocos "real" a ser utilizado, por exemplo, /dev/hda5.
MAS ATENÇÃO: Lembre-se de que a partição que você deseja utilizar para esta finalidade deverá estar disponível para uso (SEM DADOS A SEREM PRESERVADOS), pois o processo DESTRUIRÁ TODO E QUALQUER DADO PREVIAMENTE EXISTENTE NA PARTIÇÃO. Para maiores informações consulte a documentação do "cryptsetup" disponível em seu sistema e na Internet.
Normalmente estes programas não necessitam de nenhuma configuração especial, entretanto em caso de dúvidas, consulte os manuais de sua distribuição.
A seguir, crie um arquivo vazio do tamanho necessário para armazenar seus arquivos confidenciais, o que poderá ser feito através do seguinte comando, por exemplo:
# dd if=/dev/zero of=/tmp/teste bs=1k count=1024k
No exemplo acima será criado um arquivo de nome "teste" no diretório "/tmp" com tamanho de 1GB.
Para maiores informações sobre o comando dd consulte sua página "man".
Associe o arquivo vazio criado a um dispositivo de "loop" da seguinte forma:
# losetup /dev/loop1 /tmp/teste
No caso utilizamos o dispositivo /dev/loop1, pois o loop0 normalmente é utilizado para a montagem do cdrom e outras mídias, mas poderia ser utilizado qualquer dispositivo de loop disponível; para saber qual o primeiro dispositivo de loop disponível, utilize o seguinte comando:
# losetup -f
Mas, como dissemos, é conveniente EVITAR utilizar o /dev/loop0, pois normalmente é utilizado para a montagem de mídias contendo imagens ISO (cdrom etc).
Finalizada esta etapa, poderemos então prosseguir.
Criando o volume criptografado
Uma vez que agora possuímos um dispositivo de blocos pronto para ser usado, crie o volume criptografado através do seguinte comando:
# cryptsetup --verbose --verify-passphrase luksFormat /dev/loop1
O comando acima criará um volume criptografado baseado no dispositivo de blocos /dev/loop1 (que por sua vez está associado ao arquivo vazio /tmp/teste); se tudo der certo o programa apresentará na tela as seguintes mensagens:
Observe que:
* Em primeiro lugar o programa avisa que todos os dados em /dev/loop1 serão irrevogavelmente sobrescritos;
* A seguir o programa solicita sua confirmação, em letras maiúsculas, através da palavra "YES";
* Uma vez que utilizamos a opção --verify-passphrase, o programa solicita-nos a seguir a confirmação da senha digitada, que NÃO é ecoada (não aparece) na tela. Procure utilizar uma senha aleatória, sem palavras conhecidas, que possua letras e números e no mínimo 8 caracteres;
* ATENÇÃO: lembre-se de guardar a senha em um local seguro (preferencialmente que não seja no mesmo micro ou junto ao mesmo ! ) e do qual você se lembre, pois se esquecer-se da senha e não conseguir recuperá-la, você muito provavelmente NÃO terá mais acesso aos seus dados;
* Sugerimos fortemente que você mantenha uma cópia atualizada de seus dados, a serem transferidos ou criados no volume criptografado, na forma de um "backup" em uma outra mídia (outro HD, cd-r(w), dvd-r(w), pen-drive etc.); a mesma deverá ser armazenada em local seguro e acessível por você, para o caso de você perder ou esquecer-se da senha, corrupção do sistema de arquivos ou falha do dispositivo.
Um bom programa para gerar senhas é o "mkpasswd"; utilize-o, se desejar, como por exemplo:
# mkpasswd -l 12 -d 5 -c 7 -C 0 -s 0
O comando acima gerará uma senha similar à seguinte:
6q2w17zch4sf
Trata-se de uma senha de 12 caracteres, sendo composta por 5 números, 7 caracteres minúsculos, nenhum caractere maiúsculo e nenhum caractere especial. Para maiores informações, ou gerar senhas de características diferentes, consulte a página man do "mkpasswd".
Podemos agora passar à próxima etapa.
Formatando o volume criptografado
Agora que possuímos um volume criptografado, vamos prepará-lo para a utilização. Para tanto, é preciso primeiramente acessar o dispositivo:
# cryptsetup luksOpen /dev/loop1 teste
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
Como observamos, o comando acima abriu o volume criptografado /dev/loop1 (que, como já dissemos, trata-se na verdade do arquivo associado /tmp/teste), com o nome "teste" (este último também pode ser qualquer nome que você desejar); ao fornecermos a senha após a frase " Enter LUKS passphrase: " (que mais uma vez lembramos NÃO será ecoada, exibida na tela), a mensagem "Command successful" indica que o volume criptografado está agora acessível.
Ele estará acessível em /dev/mapper/teste; mas não confunda este "dispositivo virtual" "teste" com o arquivo "teste", que está associado ao dispositivo loop1, e que é a base "real", "física" de tudo, criado anteriormente no diretório /tmp, e que é de fato o verdadeiro volume criptografado. Mas para as operações com o programa "cryptsetup" você sempre utilizará o dispositivo aberto sob o diretório /dev/mapper (no exemplo acima /dev/mapper/teste).
Agora que temos acesso ao dispositivo, podemos formatá-lo normalmente, como por exemplo:
# mke2fs -b 1024 -m1 -j /dev/mapper/teste
Isto criará um sistema de arquivos ext3 com blocos de 1024 bytes e apenas 1% de espaço reservado ao root (para economizar espaço) no dispositivo.
Finalmente, podemos montar o sistema de arquivos criado sobre o volume criptografado:
# mkdir /mnt/teste
# mount -t ext3 -o defaults /dev/mapper/teste /mnt/teste
Para torná-lo acessível através de sua partição /home, faça o seguinte (assumindo que você realizou todo o procedimento acima como root e que o seu usuário "comum" é "usuário", seu grupo é "grupo" e seu /home é "/home/usuário"), ajuste as permissões e crie um "link" simbólico, como por exemplo:
# chown -R usuário.grupo /mnt/teste
# ln -s /mnt/teste /home/usuário/teste
Agora você poderá copiar para o volume criptografado os seus arquivos e/ou diretórios confidenciais utilizando "cp" ou o "rsync" normalmente, como faria com um diretório "comum".
Finalizando
Quando desejar proteger seus dados, você deverá desmontar, "fechar" e desassociar do dispositivo de "loop" o volume criptografado, como por exemplo:
# umount /mnt/teste
# cryptsetup luksClose /dev/mapper/teste
# losetup -d /dev/loop1
Apesar de não ser pelo visto estritamente necessário, talvez seja conveniente, para assegurar que seus dados confidenciais não fiquem expostos, você criar um "script" para esta finalidade, a ser executado quando você se ausentar de sua máquina e/ou quando desligar o sistema operacional.
Finalmente, nunca é demais lembrar:
* Mantenha sempre uma cópia ("backup") atualizada de seus dados confidenciais, em um local seguro e acessível por você, para o caso de o volume criptografado falhar, for corrompido ou você perder ou esquecer-se da senha;
* Crie uma senha "forte", com letras e números aleatórios e pelo menos 8 caracteres; NÃO guarde a senha em um arquivo no micro, nem junto ao mesmo, pois em caso de roubo ela poderá ser utilizada para acesso indevido e não autorizado a seus dados confidenciais;
* Lembre-se que não é só o ser humano quem falha, a máquina falha também; portanto, não confie totalmente em nenhum dispositivo de segurança; um bom nível de segurança é obtido através de um CONJUNTO de hábitos, procedimentos e técnicas que, se adotados simultaneamente, visam dificultar ao máximo a violação e o acesso indevido e não autorizado aos dados; entretanto, impedir completamente tais ações invasivas é praticamente impossível, já que o conhecimento técnico atualmente é altamente disseminado, e como sabemos, ele pode ser utilizado tanto para o bem como para o mal;
* Assim como você leu este artigo e esperamos que seja-lhe útil, esperamos também que você corresponda ao esforço e tempo empregados em disponibilizar-lhe tal conhecimento; colaborando e contribuindo de sua parte, com a disseminação voluntária, não onerosa e criteriosa de conhecimentos, que possam ser úteis à comunidade que utiliza Software Livre, pois esta é a base mais importante de seu desenvolvimento.
Muito Obrigado. Ate a Proxima . (Y)
Creditos: Stefan Fontz
Introdução
Muitas vezes necessitamos de um local seguro em nosso disco rígido para armazenar informações confidenciais. Uma excelente opção para isto é o pacote cryptsetup, que permite criar um volume criptografado, baseado em um dispositivo de blocos e acessível somente através de uma senha.
Ocorre que muitas vezes não possuímos uma partição livre no HD para fazer isto, e o processo de redimensionar uma partição para tal finalidade não é algo trivial e isento de riscos.
Uma boa solução para isto é criar um arquivo vazio em um sistema de arquivos já existente e utilizá-lo como um dispositivo de blocos, o que pode ser feito através do programa losetup
O losetup associa um arquivo comum a um dispositivo de "loop", passando então a ser visto pelo sistema operacional como um dispositivo de blocos, podendo ser criptografado, formatado, montado e utilizado para armazenar seus dados confidenciais.
Você poderá então copiar para ele seus arquivos e diretórios contendo informações sigilosas e, após o uso, desmontá-lo e "fechá-lo", tornando-o inacessível a terceiros que não possuem a senha. Essa abordagem é especialmente interessante para uso em dispositivos móveis tais como notebooks e mídias removíveis, que mesmo em caso de roubo estarão protegidas contra a violação das informações confidenciais.
Mas lembre-se: nenhum dispositivo de segurança é perfeito, portanto lembre-se de manter sempre um backup atualizado de seus dados mais importantes em local seguro e acessível por você.
Atenção: As informações deste artigo não foram testadas em ambiente "de produção", e somente em caráter experimental; não nos responsabilizamos por quaisquer danos ou perdas de qualquer natureza que possam advir da utilização destas informações, bem como de sua implementação prática, a qualquer título; os direitos sobre as marcas e programas porventura aqui mencionados pertencem a seus detentores legais, bem como quaisquer responsabilidades legais que porventura houverem em relação à sua utilização.
Sugerimos fortemente a implementação dos procedimentos aqui descritos em caráter experimental, ficando sua posterior utilização para outras finalidades a exclusivo critério e responsabilidade dos leitores ou de quem quer que venha a utilizar estas informações.
Provendo os suportes no kernel
Em primeiro lugar é necessário prover os devidos suportes no kernel:
* Suporte a dispositivo de loop (sugiro NÃO habilitar a subopção "cryptoloop");
* Suporte ao device mapper (subopção do item "RAID e LVM");
* Suporte a criptografia AES (subopção do item "CRYPTOGRAPHIC OPTIONS").
Apesar dessas opções pelo visto estarem habilitadas por padrão no kernel 2.6, é conveniente verificar e habilitá-las se for preciso.
Repare que a subopção "cryptoloop" do item "Loopback device support" não tem nada a ver com o "dm-crypt", que utilizaremos através do cryptsetup, e talvez seja conveniente não habilitá-la para evitar problemas; uma vez que, pelo menos até o Kernel 2.6.21, ela tinha problemas com sistemas de arquivo com "Journaling" (ext3, raiserfs) e talvez cause algum tipo de conflito ou incompatibilidade com o "dm-crypt".
Então verifique se os seguintes itens na árvore de compilação de seu Kernel estão como abaixo (make menuconfig):
Device drivers --->
Block devices --->
<*> Loopback device support
< > Cryptoloop Support ===> (DESABILITAR)
Multi-device support (RAID and LVM) --->[*] Multiple devices driver support (RAID and LVM)
<*> Device mapper support
<*> Crypt target support
Cryptographic options --->
--- Cryptographic API
--- Cryptographic algorithm manager
--- CBC support
<*> AES cipher algorithms
<*> AES cipher algorithms (i586)
Block devices --->
<*> Loopback device support
< > Cryptoloop Support ===> (DESABILITAR)
Multi-device support (RAID and LVM) --->[*] Multiple devices driver support (RAID and LVM)
<*> Device mapper support
<*> Crypt target support
Cryptographic options --->
--- Cryptographic API
--- Cryptographic algorithm manager
--- CBC support
<*> AES cipher algorithms
<*> AES cipher algorithms (i586)
Provendo outros pré-requisitos
Uma vez providos os devidos suportes no kernel, instale os seguintes pacotes, se já não estiverem instalados em sua distribuição:
* util-linux - normalmente provê o programa "losetup";
* cryptsetup.
Observação importante:
Se você desejar, poderá criar o volume criptografado em uma partição comum, como por exemplo /dev/hda5; se for o seu caso, você não precisará criar o arquivo vazio abaixo mencionado, nem utilizar o programa "losetup" para associá-lo e desassociá-lo; neste caso, vá direto para a próxima página, ignore tudo o que for dito em relação ao programa "losetup" e substitua o dispositivo de blocos aqui mencionado como /dev/loop1 pelo nome do dispositivo de blocos "real" a ser utilizado, por exemplo, /dev/hda5.
MAS ATENÇÃO: Lembre-se de que a partição que você deseja utilizar para esta finalidade deverá estar disponível para uso (SEM DADOS A SEREM PRESERVADOS), pois o processo DESTRUIRÁ TODO E QUALQUER DADO PREVIAMENTE EXISTENTE NA PARTIÇÃO. Para maiores informações consulte a documentação do "cryptsetup" disponível em seu sistema e na Internet.
Normalmente estes programas não necessitam de nenhuma configuração especial, entretanto em caso de dúvidas, consulte os manuais de sua distribuição.
A seguir, crie um arquivo vazio do tamanho necessário para armazenar seus arquivos confidenciais, o que poderá ser feito através do seguinte comando, por exemplo:
# dd if=/dev/zero of=/tmp/teste bs=1k count=1024k
No exemplo acima será criado um arquivo de nome "teste" no diretório "/tmp" com tamanho de 1GB.
Para maiores informações sobre o comando dd consulte sua página "man".
Associe o arquivo vazio criado a um dispositivo de "loop" da seguinte forma:
# losetup /dev/loop1 /tmp/teste
No caso utilizamos o dispositivo /dev/loop1, pois o loop0 normalmente é utilizado para a montagem do cdrom e outras mídias, mas poderia ser utilizado qualquer dispositivo de loop disponível; para saber qual o primeiro dispositivo de loop disponível, utilize o seguinte comando:
# losetup -f
Mas, como dissemos, é conveniente EVITAR utilizar o /dev/loop0, pois normalmente é utilizado para a montagem de mídias contendo imagens ISO (cdrom etc).
Finalizada esta etapa, poderemos então prosseguir.
Criando o volume criptografado
Uma vez que agora possuímos um dispositivo de blocos pronto para ser usado, crie o volume criptografado através do seguinte comando:
# cryptsetup --verbose --verify-passphrase luksFormat /dev/loop1
O comando acima criará um volume criptografado baseado no dispositivo de blocos /dev/loop1 (que por sua vez está associado ao arquivo vazio /tmp/teste); se tudo der certo o programa apresentará na tela as seguintes mensagens:
WARNING!
========
This will overwrite data on /dev/loop1 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
========
This will overwrite data on /dev/loop1 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
* Em primeiro lugar o programa avisa que todos os dados em /dev/loop1 serão irrevogavelmente sobrescritos;
* A seguir o programa solicita sua confirmação, em letras maiúsculas, através da palavra "YES";
* Uma vez que utilizamos a opção --verify-passphrase, o programa solicita-nos a seguir a confirmação da senha digitada, que NÃO é ecoada (não aparece) na tela. Procure utilizar uma senha aleatória, sem palavras conhecidas, que possua letras e números e no mínimo 8 caracteres;
* ATENÇÃO: lembre-se de guardar a senha em um local seguro (preferencialmente que não seja no mesmo micro ou junto ao mesmo ! ) e do qual você se lembre, pois se esquecer-se da senha e não conseguir recuperá-la, você muito provavelmente NÃO terá mais acesso aos seus dados;
* Sugerimos fortemente que você mantenha uma cópia atualizada de seus dados, a serem transferidos ou criados no volume criptografado, na forma de um "backup" em uma outra mídia (outro HD, cd-r(w), dvd-r(w), pen-drive etc.); a mesma deverá ser armazenada em local seguro e acessível por você, para o caso de você perder ou esquecer-se da senha, corrupção do sistema de arquivos ou falha do dispositivo.
Um bom programa para gerar senhas é o "mkpasswd"; utilize-o, se desejar, como por exemplo:
# mkpasswd -l 12 -d 5 -c 7 -C 0 -s 0
O comando acima gerará uma senha similar à seguinte:
6q2w17zch4sf
Trata-se de uma senha de 12 caracteres, sendo composta por 5 números, 7 caracteres minúsculos, nenhum caractere maiúsculo e nenhum caractere especial. Para maiores informações, ou gerar senhas de características diferentes, consulte a página man do "mkpasswd".
Podemos agora passar à próxima etapa.
Formatando o volume criptografado
Agora que possuímos um volume criptografado, vamos prepará-lo para a utilização. Para tanto, é preciso primeiramente acessar o dispositivo:
# cryptsetup luksOpen /dev/loop1 teste
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
Como observamos, o comando acima abriu o volume criptografado /dev/loop1 (que, como já dissemos, trata-se na verdade do arquivo associado /tmp/teste), com o nome "teste" (este último também pode ser qualquer nome que você desejar); ao fornecermos a senha após a frase " Enter LUKS passphrase: " (que mais uma vez lembramos NÃO será ecoada, exibida na tela), a mensagem "Command successful" indica que o volume criptografado está agora acessível.
Ele estará acessível em /dev/mapper/teste; mas não confunda este "dispositivo virtual" "teste" com o arquivo "teste", que está associado ao dispositivo loop1, e que é a base "real", "física" de tudo, criado anteriormente no diretório /tmp, e que é de fato o verdadeiro volume criptografado. Mas para as operações com o programa "cryptsetup" você sempre utilizará o dispositivo aberto sob o diretório /dev/mapper (no exemplo acima /dev/mapper/teste).
Agora que temos acesso ao dispositivo, podemos formatá-lo normalmente, como por exemplo:
# mke2fs -b 1024 -m1 -j /dev/mapper/teste
Isto criará um sistema de arquivos ext3 com blocos de 1024 bytes e apenas 1% de espaço reservado ao root (para economizar espaço) no dispositivo.
Finalmente, podemos montar o sistema de arquivos criado sobre o volume criptografado:
# mkdir /mnt/teste
# mount -t ext3 -o defaults /dev/mapper/teste /mnt/teste
Para torná-lo acessível através de sua partição /home, faça o seguinte (assumindo que você realizou todo o procedimento acima como root e que o seu usuário "comum" é "usuário", seu grupo é "grupo" e seu /home é "/home/usuário"), ajuste as permissões e crie um "link" simbólico, como por exemplo:
# chown -R usuário.grupo /mnt/teste
# ln -s /mnt/teste /home/usuário/teste
Agora você poderá copiar para o volume criptografado os seus arquivos e/ou diretórios confidenciais utilizando "cp" ou o "rsync" normalmente, como faria com um diretório "comum".
Finalizando
Quando desejar proteger seus dados, você deverá desmontar, "fechar" e desassociar do dispositivo de "loop" o volume criptografado, como por exemplo:
# umount /mnt/teste
# cryptsetup luksClose /dev/mapper/teste
# losetup -d /dev/loop1
Apesar de não ser pelo visto estritamente necessário, talvez seja conveniente, para assegurar que seus dados confidenciais não fiquem expostos, você criar um "script" para esta finalidade, a ser executado quando você se ausentar de sua máquina e/ou quando desligar o sistema operacional.
Finalmente, nunca é demais lembrar:
* Mantenha sempre uma cópia ("backup") atualizada de seus dados confidenciais, em um local seguro e acessível por você, para o caso de o volume criptografado falhar, for corrompido ou você perder ou esquecer-se da senha;
* Crie uma senha "forte", com letras e números aleatórios e pelo menos 8 caracteres; NÃO guarde a senha em um arquivo no micro, nem junto ao mesmo, pois em caso de roubo ela poderá ser utilizada para acesso indevido e não autorizado a seus dados confidenciais;
* Lembre-se que não é só o ser humano quem falha, a máquina falha também; portanto, não confie totalmente em nenhum dispositivo de segurança; um bom nível de segurança é obtido através de um CONJUNTO de hábitos, procedimentos e técnicas que, se adotados simultaneamente, visam dificultar ao máximo a violação e o acesso indevido e não autorizado aos dados; entretanto, impedir completamente tais ações invasivas é praticamente impossível, já que o conhecimento técnico atualmente é altamente disseminado, e como sabemos, ele pode ser utilizado tanto para o bem como para o mal;
* Assim como você leu este artigo e esperamos que seja-lhe útil, esperamos também que você corresponda ao esforço e tempo empregados em disponibilizar-lhe tal conhecimento; colaborando e contribuindo de sua parte, com a disseminação voluntária, não onerosa e criteriosa de conhecimentos, que possam ser úteis à comunidade que utiliza Software Livre, pois esta é a base mais importante de seu desenvolvimento.
Muito Obrigado. Ate a Proxima . (Y)
Creditos: Stefan Fontz