Configurando serviço de http oculto para Tor usando Apache Web Server

INTRODUÇÃO

The onion router permite que clientes e repetidores ofereçam serviços ocultos. O anonimato do endereçamento IP é o objetivo principal, já que o mesmo não pode ser revelado a origem. Este fato agrega valores de segurança da informação, tal como ao desenvolver um ataque de negação de serviço, a rede invasora não terá um destino estático, além de desconhecê-lo. Podemos também citar como exemplo uma empresa que pretende esconder segredos comerciais e precisa de um canal seguro de comunicação entre seus fornecedores, cliente e investidores. Mas se não revelo meu endereço IP, como o serviço oculto é acessado? Simples. Os serviços ocultos são acessados através do pseudo domínio: .onion TLD. O .onion é um hash de 16 caracteres (alpha-semi-numeric) que é gerado automaticamente baseado em uma chave pública quando um novo serviço oculto é configurado.  Esta técnica é também conhecida como Tor rendezvous points.

Podemos fazer uma pequena observação: é claro que os serviços ocultos manterão as suas falhas “naturais”. A versão do Word Press 3.4 tem uma falha de segurança que permite ataques XSS e o fato da aplicação rodar de forma oculta, não deixará imune a falha.

Iremos simular neste documento a ocultação do serviço http provido pelo Apache Web Server. Não iremos tratar da instalação do Tor e nem outro serviço, tal como o próprio Apache Web server. Todos os exemplos foram realizados em um notebook com a distribuição Gnu Linux Slackware 13.37- x86_64. Mas acredito que este documento seja facilmente adaptado para outras distribuições. E recomendo a leitura da introdução a invisible web.

Configurando o Tor

Existem 2 formas de configuração, gráfica via Vidalia e edição direta do arquivo de configuração torrc. Vamos adotar neste procedimento o segundo formato. Primeiro localize o seu arquivo torrc, geralmente encontrado no /etc/tor ou /path/tor-browser_xx-xx. O comando find e o locate são de grande ajuda neste momento.

Para o nosso caso teremos 2 parâmetros, uma linha HiddenServiceDir e uma ou mais linhas HiddenServicePort.

HiddenServiceDir: É o diretório onde o Tor irá armazenar informações sobre o serviço oculto. Um arquivo de nome hostname, contendo a URL .onion e um conjunto de chaves pública e privada para seu serviço oculto. O arquivo é o private_key. Claro, não compartilhe este arquivo com ninguém, caso queira manter seu serviço oculto.

HiddenServicePort: Determina uma porta virtual seguido de endereço IP e porta onde as conexões serão direcionadas quando o destino for a porta virtual.

Então adicionaremos as seguintes linhas ao arquivo:

HiddenServiceDir ./tmp/www
HiddenServicePort 80 127.0.0.1:80

Caminho de armazenamento e configuração das portas. Neste momento se faz necessário o reinicio do Tor, se tudo ocorrer bem, você terá o diretório www criado no caminho informado no HiddenServiceDir. Nele você encontrará os arquivos hostname e private_key, assim como ilustra imagem 1. Com isto já temos em mãos o endereço .onion do nosso serviço oculto, essencial para o nosso próximo passo.

$ cat hostname
m5lizi7a7nm3kjqf.onion

picture26

Imagem 1 – Arquivos criados após a configuração e reinicio do Tor.

Configurando o Apache Web Server

Aqui basicamente iremos criar um virtual host para o nosso endereço oculto. Segue o exemplo da configuração do ServerName m5lizi7a7nm3kjqf.onion. Onde o DocumentRoot é onde se encontra o meu blog ou o site da minha empresa.

<VirtualHost 127.0.0.1:80>
ServerName  m5lizi7a7nm3kjqf.onion
DocumentRoot /tmp/Tor/
<Directory />
AllowOverride none
Require all granted
</Directory>
</VirtualHost>

Com o virtual host configurado, é preciso iniciar ou reiniciar o servidor web. Para testar se o serviço está oculto iremos passar a URL encontrada no arquivo hostname para um navegador que esteja utilizando a rede Tor. O resultado deverá ser o conteúdo do DocumentRoot informado, assim como na imagem 2.

picture27

Imagem 2 – http://m5lizi7a7nm3kjqf.onion/

Para concluir, segue um vídeo exemplo dos procedimentos aqui mencionados.

Advertisements

One thought on “Configurando serviço de http oculto para Tor usando Apache Web Server

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