Configurando serviço SSH oculto

Dando continuidade ao tema hidden services, Configurando serviço de http oculto para Tor usando Apache Web Server, daremos prosseguimento com o processo de ocultação de serviço, mas a bola da vez será o SSHD. SSHD ou OpenSSH Daemon, é o daemon para o programa ssh. Entretanto, outros programas como rlogin e rsh substituem o programa cliente e fornecem uma comunicação segura entre dois hosts confiáveis sobre uma rede insegura.

Primeiro iremos editar o arquivo torrc e adicionar a configuração necessária para o daemon sshd. Importante a leitura do primeiro artigo para o endentimentos dos parametros HiddenServiceDir e HiddenServicePort. Em seguida, precisaremos reiniciar/inicar o serviço Tor e obtermos o nosso hostname.

Nota mental: Como o nome é gerado a partir do par de chaves disponibilizado para o serviço oculto, é claro que cada HiddenService terá sua URL particular.

HiddenServiceDir ./tmp/ssh

HiddenServicePort 22 127.0.0.1:22

Qual o hostname ?

ncaio@notebook:~/tor-browser$ cat tmp/ssh/hostname
26qfpx2ahq7trree.onion

Assim o nosso sshd pode ser executado sem alterações extras no arquivo /etc/ssh/sshd.conf. Tome as precauções necessárias para ter um nível aceitável de segurança no sshd, mude a porta se achar prudente e deixe o serviço ouvindo apenas em localhost. Apenas lembre de replicar as mudanças de portas no torrc.

A configuração do lado servidor é tranquila. Já a do lado cliente, se faz necessário o uso de um middleware. Um programa escrito na linguagem de programação C por Shun-ichi GOTO, em junho de 2000, é o responsável no lado cliente de estabelecer conexões usando SOCKS 4/5 e HTTP como túnel. Isso é tudo que precisamos para conectarmos de forma anônima e resolver o endereço .onion via rede Tor.

–> Connect.c <–

Compilando e dando permissão de execução:

$ gcc connect.c -o connect

# chmod +x connect

Testando o connect:

Conectados na rede Tor iremos fazer um teste simples, utilizar o connect para de forma anônima criar uma conexão com um destino qualquer na porta 80, protocolo TCP.

bash-4.2# ./connect -S localhost:49864 http://www.google.com 80

Onde:

-S <– Conexão do tipo SOCKS – Por padrão a versão 5 é utilizada.

localhost:49864 <– Endereço do cliente Tor e sua porta SOCKS – Vide a imagem 1.

http://www.google.com <– Endereço destino.

80 <– Porta destino.

Você deverá ter um resposta do tipo:

bash-4.2# ./connect -S localhost:49864 http://www.google.com 80

GET / HTTP/1.1 <– você precisa digitar

HTTP/1.1 302 FoundLocation: http://www.google.ru/Cache-Control: privateContent-Type: text/html; charset=UTF-8

picture28

Imagem 1 – Uma forma de pegar as configurações Tor é consultando as propriedades do seu navegador seguro.

Configurando o cliente ssh:

No nosso caso, usaremos o usuário ncaio como exemplo. Perceba que teremos que fazer o seguinte dentro do home do usuário, editar ou criar o arquivo config (~/.ssh/config) e adicionando 2 parâmetros:

HOST      26qfpx2ahq7trree.onion

ProxyCommand  /tmp/connect -S localhost:49864 %h %p

Onde HOST é o endereço destino na rede Tor e ProxyCommand passamos o programa connect e suas opções de uso.

Testando o cliente SSH:

ncaio@notebook:~$ ssh 26qfpx2ahq7trree.onion

Se tudo ocorrer bem, você receberá a mensagem de fingerprint.

Assim como no post anterior, segue o material complementar em vídeo.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s