No Linux, usamos o GnuPG para criptografar dados, colocar assinatura digital e gerenciamento de chaves de criptografia.
Pegue um arquivo comum, como um de texto, e vamos criptografar ele com esse programa, que usa uma chave privada (simétrica) com algoritmo o CAST5.
Vá no terminal do Linux e digite para ler o arquivo no terminal cat teste.txt
, e pra encriptar o arquivo, digite esse comando:
gpg -c teste.txt
Ele cria um diretório, um arquivo de configuração e um "chaveiro" com as chaves e pede pra criar uma senha. O arquivo criado terá um .gpg depois da extensão. Se quiser ver o conteúdo do arquivo criptografado, use o cat novamente.
Para desencriptar, digite isso no comando:
gpg teste.txt.gpg
Ele pedirá a senha e desencriptará ele.
Primeiramente tenha o certificado criado com as chaves públicas e privadas com seu e-mail.
No Thunderbird, instale a extensão Enigmail, que é integrada ao GPG. Ative e reinicie o Thunderbird, ele abrirá a configuração de e-mail, ele achará a chave de criptografia do seu chaveiro, além de opção para criar uma nova.
No seu e-mail no Thunderbird, crie uma nova mensagem qualquer, em cima tem uma mensagem avisando que a mensagem não está assinada nem criptografada, clique em Enigmail e marque as opções Criptografar e/ou Assinar Mensagem. Do lado dele temos os atalhos para Criptografar, Assinar e Anexar Chave Pública.
Mesmo se o destinatário não tiver chave pública, podemos marcar nosso e-mail remetente e criptografar ou assinar. Podemos criptografar apenas a mensagem ou também os anexos (atenção que a chave pública enviada será como anexo também, e não deve ser criptografada).
No e-mail destinatário, ao clicarmos no e-mail recebido ele pedirá a chave pública e descriptografar normalmente.
A resposta também será criptografada, ao responder o remetente.
Podemos também salvar e adicionar a chave pública ao chaveiro.
SSH (Secure Shell) é um protocolo de comunicação seguro que permite o envio de comandos e o controle remoto de um host por meio de uma conexão criptografada. O SSH possui uma arquitetura cliente/servidor, e está disponível em praticamente todas as plataformas, como Linux, Mac OS X, BSD, Windows, etc.
O protocolo SSH cuida da autenticação, criptografia e integridade dos dados transmitidos em uma rede.
O OpenSSH é uma versão gratuita do SSH. É desenvolvido pelo projeto OpenBSD (mas é disponível para várias plataformas), e podemos encontrá-lo em https://www.openssh.com/.
Para instalar ele, vamos usar o apt mesmo, digitando isso pro cliente:
sudo apt-get install openssh-client
E isso pra instalar o servidor:
sudo apt-get install openssh-server
No servidor, inicie o serviço dele digitando sudo service ssh start
.
E para conectar a partir do cliente, use o nome de usuário e o IP privado (ou nome do host) dele, assim (em modo root):
ssh -l nomedoservidor 192.168.1.129
PS: Podemos dar um ping antes no IP do servidor, pra ver se ele está respondendo.
Ao tentar fazer a conexão, ele pedirá a senha, e logará no sistema do servidor, que aparecerá no terminal do cliente. Para sair digite exit
ou logout
.
PS: Pode ser necessário ter que liberar a porta 22 no Firewall do servidor.
Se olharmos na pasta /etc/ssh do servidor, corretamente configurado, temos os arquivos de configuração ssh_config e sshd_config, que são a configuração do cliente e servidor, respectivamente.
Voltando ao servidor, entre nesse diretório e abra esses arquivos pelo terminal, que vemos as portas, protocolos usados, autenticações, etc.
Quando um cliente SSH se conecta a um servidor, cada um prova sua identidade ao outro. O servidor autentica o cliente e o cliente também autentica o servidor com o uso de criptografia de chave pública. Cada servidor SSH possui uma chave de identificação, chamada de hostkey, usada para identificar-se para os clientes.
Observe no arquivo em /root ou /home, no cliente, que temos um diretório com o nome .ssh, que tem um arquivo com criptografia que identifica os servidores conhecidos pelo cliente, para conexão.
PS: Lembre-se que o cliente é quem acessa, e o servidor quem é o acessado.
Podemos nos conectar por senha a um servidor SSH. Porém, senhas apresentam problemas como:
Para eliminar esses problemas, o SSH suporta autenticação de chave pública, usando chaves criptográficas.
Esse é o processo de autenticação:
Para usarmos esse esquema, precisamos de: Um par de chaves e um passphrase para protegê-las, e instalar a chave pública do usuário no servidor.
Entrando no Linux cliente, entre no SSH igual anteriormente, com acesso root, mas com a opção -v, que mostrará na tela os passos que está executando:
ssh -vl nomedoservidor 192.168.1.129
Para usar a autenticação criptográfica primeiro devemos gerar um par de chaves. Usaremos o programa ssh-keygen para gerar chaves DSA ou RSA. No cliente basta digitar ssh-keygen -t rsa
. O programa criará o diretório local (~/.ssh) se ele não existir ainda e armazenará as chaves criadas em dois arquivos nele. Por padrão, os nomes das chaves serão id_rsa e id_rsa.pub.
Para isso, no cliente, digite isso:
ssh-keygen -t rsa
Ele gerará a chave rsa e criará o arquivo id_rsa (que pode ser alterado o nome, para não alterar é só dar enter sem escrever nada), digite uma passphrase (frase-chave) e dê enter. Ele gerará uma "imagem" aleatória para isso.
PS: Prefira RSA ao invés de DSA, já que esta última não está mais sendo aceita.
E no cliente, digite isso, na pasta ~/.ssh, para copiar o arquivo do cliente para o servidor:
scp id_rsa.pub nomedoservidor@192.168.1.129: # Não esqueça dos dois pontos
PS: Se definiu o arquivo pub com nome diferente, coloque esse nome.
No acesso ao servidor (via SSH mesmo), em /home, digite isso:
cat id_rsa.pub>>~/.ssh/authorized_keys
cat ~/.ssh/authorized_keys
O primeiro comando escrito acima pega o conteúdo do id_rsa e escreve no arquivo de chaves autorizadas para conexão.
Pra finalizar, digite logout
pra voltar à máquina cliente. E agora tente logar no servidor novamente com ssh -l nomedoservidor 192.168.1.129
. Ele não pedirá mais a senha do outro computador, pedirá a passphrase, que é a chave pública que foi criada e adicionada ao servidor.
A autenticação de chave pública é mais segura que a autenticação por senha porque são necessários dois componentes secretos (o arquivo de chave no disco e a passphrase), nem a passphrase e nem a chave privada são enviadas ao host remoto, apenas o autenticador gerado com elas, e chaves criptográficas geradores por computador são muito mais difícies de adivinhar do que chaves criadas por pessoas.
O OpenSSH inclui um programa chamado ssh-copy-id que instala uma chave pública automaticamente em um servidor remoto com um comando, escrevendo no ~/.ssh/autorize_keys ssh-copy-id -i arquivo_chave usuario@servidor, por exemplo, digitamos no cliente ssh-copy-id -i id_rsa.pub nomedoservidor@192.168.1.129
.
Cada vez que nos conectamos ao servidor SSH precisamos redigitar a passphrase. Porém, se usarmos um agente SSH poderemos nos identificar apenas uma vez, e o ssh (e o scp) podem se "lembrar" de nossa identidade até efetuarmos logout do cliente, por exemplo.
Um agente é um programa que mantém chaves privadas na memória e fornecem serviçoes de autenticação a clientes SSH. O agente usado pelo OpenSSH é o ssh-agent.
Voltando ao cliente, digite isso (fora do SSH), para iniciar o ssh-agente no shell que estamos usando:
ssh-agent $SHELL
ssh-add
Ele vai pedir o passphrase, digita ela e aí ele não a pedirá mais até fazermos logout no cliente. Para ver se a chave foi carregada, digite ssh-add -l
(fora do SSH, no cliente).
Conecta novamente ao servidor, ele não pedirá mais a senha enquanto estivermos nessa sessão.
PS: Não use isso quanto tiver fora do acesso da máquina cliente, por questões de segurança.
Pra apagar uma chave da memória, digite fora do SSH, no cliente, ssh-add -d id_rsa
(ou o nome dela, caso seja outro), pra apagar todas, digite ssh-add -D
.
O comando SCP (Secure Copy) é um programa utilizado para copiar arquivos de forma segura entre dois hosts numa rede, usando o SSH para transferência segura dos dados.
Entre no servidor e pegue o ip dele, usando o ifconfig para isso. e o nome do usuário do mesmo.
Na máquina cliente, dê um ping no IP do servidor, e veja se ele está respondendo.
Crie um arquivo qualquer, como um de texto, na máquina cliente. E na máquina cliente, digite isso:
scp arquivo.txt nomedoservidor@192.168.1.189:/home/usuario
No caso, o que vai após o IP do servidor, é a pasta onde será salvo o arquivo.
Ele pedirá a confirmação da conexão, a senha e transferirá o arquivo até lá.
Também podemos transferir do servidor para o cliente, e use outro arquivo do servidor.
Para baixar algo do servidor, faça isso no cliente:
scp nomedoservidor@192.168.1.189:servidor.txt servidor.txt
ls
cat servidor.txt
mkdir TesteSCP
mv arquivo.txt /TesteSCP/
mv servidor.txt /TesteSCP/
No código acima, o padrão é a pasta /home/nomedoservidor, se for baixar de outro diretório, especifique ele após os dois pontos, o segunto nome é o nome que ele terá no cliente após o download.
Para copiar do cliente para o servidor da pasta criada, fazemos assim:
scp -r TesteSCP nomedoservidor@192.168.1.189:~/Imagens
No servidor, podemos ver, na pasta especificada, que o diretório todo foi transferido, com todos os arquivos juntos.
Outras opções do scp:
scp -Cv
- Comprimir arquivos antes de enviar.scp -c nomedometodo
- Escolher método de criptografia a ser usado, como 3des, aes-128 e blowfish.scp -P numerodaporta
- Trocar a porta padrão para troca de arquivos.O projeto Tor é uma organização que conduz pesquisa e desenvolvimento em privacidade e anonimidade online. A ideia central do Tor é impedir que outras pessoas descubram sua localização, seus hábitos de navegação, mascarar sua identidade, etc.
Para baixar o navegador tor, acesse esse site e escolha a opção referente ao seu sistema (no caso, o Linux): https://www.torproject.org/pt-BR/download/languages/
Na página de download, existem algumas dicas e sugestões para usar o TOR corretamente e com segurança. Aqui vemos como verificar a assinatura dele: https://www.torproject.org/docs/verifying-signatures
Baixe também o arquivo de chave do TOR, na mesma página. Com os dois arquivos na mesma pasta, digite isso:
gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org
Depois, assine a chave pública com sua chave privada, assim:
gpg --sign-key 5A4F5F4F5452677F32E55A17D0ACBC71C8C023AB
Depois, para verificar se o pacote TOR realmente é o original, faça isso:
gpg --verify tor-browser-linux32-3.5.3_pt-BR.tar.xz{.asc,}
Veja se aparece "assinatura correta de "The Tor Browser Developers", que mostrará que o pacote é verídico.
Para instalar, rode esses comandos:
tar -xpvf tor-browser-linux32-3.5.3_pt-BR.tar.xz
Entre no diretório do programa, e ver se aparece o start-tor-browser, que é o que inicializa o navegador, posteriormente, ele pode ser adicionado à um atalho ou ao lançador.
Abrindo o Tor, aparecerá as configurações do navegador, que deverão ser feitas para permitir o acesso.
Quando ele terminar, ele abrirá uma página de boas-vindas, mostrando seu IP anônimo e outras dicas para usar o Tor com segurança. A página em questão é essa: https://check.torproject.org/?lang=pt_BR