Há algum tempo eu escrevi um artigo sobre deepweb/darkweb que finaliza mostrando como publicar um site puramente HTML. Mas e se quisermos publicar um site dinâmico? Em PHP, Python, NodeJS ou qualquer outra linguagem? Para quem já tiver publicado qualquer site comum usando um servidor Apache ou Ngix, este não é um procedimento tão diferente, havendo apenas mais um dois passos simples e adicionais. Se o assunto te interessa prepare-se para um “mergulho em águas profundas”.
Não vou entrar em discussão sobre o que é e porque publicar seu site na Darkweb, pois isso foi tema daquele post, e caso você ainda não o tenha lido, recomendo lê-lo.
Com isso, nós vamos direto ao assunto que será puramente técnico e requer conhecimentos básicos sobre instalação, configuração e manutenção de servidores web.
Requisitos iniciais
Se você já configurou um servidor Apache antes, você pode seguramente pular esta parte e instalar a sua aplicação web como de costume.
O importante aqui é ter um serviço web comum rodando com a sua aplicação. Destaque aqui para o RODANDO. Você só vai começar a mexer com a parte de publicação na Darkweb depois que a sua aplicação estiver operacional e você conseguir acessá-la pelo navegador da sua máquina.
Você deve instalar sua aplicação como de costume satisfazendo todos os seus requisitos operacionais. Por exemplo se a ideia for colocar um blog com WordPress, ou um sistema de compartilhamento de arquivos como o Owncloud/Nextcloud na Darkweb, siga todo o procedimento do manual destas aplicações.
Instalando e configurando o serviço Web – Apache e uma aplicação PHP de teste
Para não perdermos tempo instalando e configurando uma aplicação grande e pesada, para este exemplo eu vou apenas instalar o Apache com suporte ao PHP e criar um arquivo PHP bem básico apenas para validar que o interpretador está funcionando, mas poderia ser qualquer aplicação e em qualquer linguagem.
E como eu disse antes, se a sua aplicação já está rodando na sua máquina e acessível pelo navegador, você pode pular esta parte.
- Instalação do Apache
Apenas instalar o pacote do Apache e o módulo de conexão ao PHP é suficiente para nossas necessidades, então os comandos abaixo nos atendem, mas se você vai partir para uma aplicação mais completa verifique os seus requisitos adequados e instale os módulos necessários.
sudo apt update
sudo apt install apache2 libapache2-mod-php
Nota: Por padrão o Apache no Debian/Ubuntu usa o diretório /var/www/html como DocumentRoot (é aqui que ficarão os arquivos da nossa aplicação/site).
Após a instalação teremos um arquivo de apresentação chamado index.html neste diretório e que serve apenas para mostrar que o Apache está instalado corretamente.
Para ele não atrapalhar nossos testes, vamos retirá-lo do caminho com os comandos abaixo:
cd /var/www/html
sudo mv index.html index.old.html
- Criando o Arquivo PHP que será nossa aplicação
Nesta etapa, você descompactaria a sua aplicação PHP no DocumentRoot do Apache, mas no nosso caso que teremos apenas um arquivo de teste para o PHP, nós usaremos um editor de textos simples para criar um arquivo index.php com o conteúdo abaixo:
<?php
phpinfo();
?>
Como eu disse é um arquivo bem simples, apenas para teste, e que nos retornará as configurações do Apache, PHP e alguns detalhes da máquina, mas poderia ser qualquer outra aplicação.
Para facilitar, eu usei o comando abaixo que cria o arquivo diretamente sem nem mesmo precisar abrir um editor. Você pode usá-lo se quiser.
cat <<FIMARQUIVO |sudo tee /var/www/html/index.php
<?php
phpinfo();
?>
FIMARQUIVO
Feito isso, usando um navegador web de sua preferência, acesse o endereço IP do seu servidor e você deverá ver a configuração do seu servidor como na imagem abaixo.
Se você conseguiu ver a página de apresentação do PHP parabéns. Você já tem um serviço WEB com PHP rodando na Web superficial.
Se você optou por instalar qualquer outra aplicação web ela deverá estar totalmente operacional e acessível no seu navegador web convencional, a partir daqui.
Com isso, agora sim, vamos descer até a Darkweb.
Instalando o Tor Browser
Como eu expliquei no artigo anterior, há vários protocolos para publicar algo na Darkweb, e o mais comum deles (e que usaremos aqui) é o OnionRouting, bastante popular pelo projeto Tor.
Consulte aquele artigo se precisar de ajuda para entender e instalar o navegador “Tor Browser” na sua máquina, ou na de outros quem deverão acessar o serviço que estamos levando para a Darweb.
Sem instalar este navegador especial, você não conseguirá acessar seu serviço na Darkweb, pois navegadores comuns não conseguem “enxergar” os endereços “.onion” usados aqui.
Instalando o Tor
Embora o Tor seja mais conhecido pelo público leigo, por conta de seu navegador web, chamado “TorBrowser” (o que comentamos acima) e que funciona como uma VPN , há ainda a aplicação “Tor” que faz toda a parte de criptografia para anonimizar e esconder o seu site web com endereços “.onion”.
Para simplificar, nós vamos optar por instalar a versão disponível nos repositórios do Debian e do Ubuntu, o que pode ser feito com um comando apt (como abaixo):
sudo apt install tor
Configurando o Tor
O processo de configuração do Tor para disponibilizar seu site na rede Onion é simples. Nós acabamos de instalar o serviço e o seu arquivo de configuração (/etc/tor/torrc) está totalmente comentado, servindo apenas como exemplo.
Para não perdermos tempo com ele, nós faremos uma cópia do seu conteúdo (apenas para referência futura) e então criaremos um outro arquivo no lugar com o conteúdo que queremos.
- Copia do arquivo para consulta futura
cd /etc/tor
sudo cp torrc torrc.original
- Criando nosso próprio arquivo de configuração
cat <<FimConfig | sudo tee /etc/tor/torrc
HiddenServiceDir /var/lib/tor/darksite/
HiddenServicePort 80 127.0.0.1:80
FimConfig
Se preferir, você pode usar um editor de textos de sua preferência e criar um novo arquivo com aquelas duas linhas iniciando por “HidenService”.
HiddenServiceDir é o caminho para uma pasta onde estarão as chaves criptográficas, o seu novo endereço .onion e demais configurações do nosso serviço na rede Tor. Observe que eu usei uma pasta chamada “darksite” dentro de /var/lib/tor, mas poderia ser outra de sua preferência.
Da mesma forma, o nome “darksite” que usei foi apenas um exemplo e poderia ser qualquer um que permita lembrar o que está configurado naquela pasta. Isso é importante principalmente caso você tenha a intenção de hospedar outros sites e serviços no mesmo servidor.
HiddenServicePort define a porta onde o serviço WEB do Tor será ofertado e para qual endereço ele redirecionará as requisições que ele receber.
Se você já configurou outros serviços web antes já deve saber que não sobrepomos portas de serviços, como neste caso que o Apache e o Tor escutam na mesma porta 80/TCP, mas não se preocupe com isso, o Tor sabe o que está fazendo 😉
- Reinicie o serviço do Tor para ativar as novas configurações:
sudo systemctl restart tor
- Verifique qual é o seu endereço Onion
Agora que o serviço subiu, um endereço .onion foi gerado e nós podemos consultá-lo. Basta dar uma olhada no arquivo “hostname” dentro do diretório de configuração do serviço:
sudo cat /var/lib/tor/darksite/hostname
No meu teste, o endereço retornado foi esse: xqcgqtnlgtvp23wztmargqa32ort5qqd76qrczo45iesdtajsuf732qd.onion
Este ai é o endereço público que permite acessar meu site na Darkweb. Consulte o mesmo arquivo gerado na sua máquina para saber o endereço do seu serviço.
Agora só temos que colar este endereço na barra de endereços do navegador Tor Browser e conferir se a sua página será carregada.
Atenção: Os endereços Onion não abrem nos navegadores padrões da sua máquina, apenas no navegador Tor.
Observe na imagem acima, que não é a mesma tela anterior. É o mesmo conteúdo, porém desta vez acessado pelo endereço “.onion” que obtivemos (veja na barra de endereços).
Com isso nosso primeiro site está disponível no “lado sombrio” da Internet. Parabéns, divirta-se e juízo!
Outras aplicações
Como eu já disse anteriormente eu poderia ter colocado ali um WordPress com informações privadas, um Nextcloud com serviços de arquivos para uso pessoal, ou um serviço de streaming de músicas e vídeos e muito mais.
Bastaria eu configurar meu Apache com suporte ao Python, Ruby, Java ou qualquer outra linguagem que fosse interessante para meu projeto e qualquer coisa poderia estar rodando.
Segurança e certificados
Dentro da Darkweb, onde tudo é criptografado, não se faz necessário usar certificados SSL em sites, você pode acessar seu conteúdo diretamente por HTTP, que o tráfego já está cifrado e protegido.
Mas se o seu site estiver publicado na superfície e dentro da darkweb também, E VOCÊ QUISER, pode colocar um certificado ali apenas para constar.
Este certificado pode ser do ZeroSSL, Let’s Encrypt ou outro tipo de certificação gratuita. Não há nada que o impeça ou proiba de adquirir certificados comerciais para domínios .onion, mas eu acho um tremendo de um desperdício financeiro fazer isso!
Muitos sites no mesmo servidor
Também é possível publicar vários sites no mesmo Apache, ou Nginx adicionando novos “Virtualhosts”.
O processo normal é adicionar novos arquivos de virtualhost cada um deles respondendo a um novo endereço e depois publicá-los no DNS.
Mas como, agora nós temos o Tor na frente de tudo, é necessário informar a ele sobre os novos sites para que ele gere um novo endereço “.onion” para cada site.
Isso é feito adicionando as duas linhas referentes ao novo site em /etc/tor/torrc, igual fizemos com o primeiro.
Adicione as novas entradas no arquivo torrc, reinicie o serviço, procure no arquivo “hostname” qual é o endereço “.onion” de cada novo site.
Inclua os endereços na configuração de Virtualhost e reinicie o Apache.
Backup, até logo e não esqueça dos peixes
Por fim, mas não esgotando o assunto, se você pretende que seu site funcione na Darkweb por muito tempo é bom que você preserve o endereço gerado.
Não seria nada agradável para seus visitantes descobrirem que o endereço mudou, ou pior do que isso, não saber qual é o novo endereço, já que não há um indexador por estas bandas.
Além do backup dos seus arquivos, não deixe de incluir uma cópia da pasta que você definiu em “HiddenServiceDir”, neste nosso exemplo seria a pasta “/var/lib/tor/darksite/” e se quiser facilitar a sua vida depois, copie também o “/etc/tor/torrc”.
O restante pode ser assunto para outro bate-papo sobre o tema. Até lá.
Referências
Instalação do Tor https://community.torproject.org/onion-services/setup/install/
Configurando um servidor Web com o Tor https://community.torproject.org/onion-services/setup/