O que um serviço onion realmente é
Um serviço onion do Tor é um servidor alcançável somente através da rede Tor, em um endereço que termina em .onion e é derivado de uma chave criptográfica, em vez de atribuído por um registrador. Não há consulta DNS, nenhum IP público em nenhum registro, e nenhum certificado TLS para comprar: o endereço de 56 caracteres é a chave pública do serviço, então a conexão é autenticada e criptografada de ponta a ponta por construção. Um visitante rodando o Tor Browser digita o endereço; a rede organiza um ponto de encontro criptografado; os dois lados conversam sem que nenhum dos dois descubra a localização do outro. Ninguém no meio do caminho — nem um relay, nem um provedor de internet, nem o provedor de hospedagem — vê as duas pontas da conversa ao mesmo tempo.
A consequência que importa para hospedagem é estrutural, não cosmética. Um servidor web normal precisa escutar em uma porta pública, o que significa que o seu endereço é descobrível, escaneável e, no fim das contas, vinculável a quem paga a conta. Um serviço onion não escuta em nada que a internet consiga alcançar. O Tor na máquina faz apenas conexões de saída, constrói circuitos até um punhado de pontos de introdução, e espera. O serviço está online e servindo tráfego enquanto o ss -tlnp não mostra nada vinculado a um endereço roteável. Essa inversão é o motivo inteiro para rodar um.
Quando é a ferramenta certa — e quando não é
Recorra a um serviço onion quando a localização da máquina for parte do que você está protegendo: um site que precisa continuar acessível mesmo que o seu domínio clearnet seja apreendido, uma caixa de envio para fontes ou pesquisadores, um painel de administração que você prefere nem expor ao escaneamento constante da internet, ou um serviço cujo público já usa Tor e valoriza o fato de que você não consegue registrar um IP que nunca recebe. Também é a resposta honesta quando "esconder a origem" é o requisito de verdade — um proxy reverso na frente de um servidor clearnet só move o alvo, enquanto um serviço onion o elimina.
É a ferramenta errada quando os seus visitantes não vão ou não conseguem rodar Tor, quando você precisa da vazão bruta e da latência abaixo de 100 milissegundos de um servidor diretamente alcançável, ou quando a capacidade de ser encontrado é o objetivo — um endereço onion não é algo em que as pessoas esbarram vindo de um mecanismo de busca. Muitos operadores dividem a diferença e rodam os dois: um site normal para alcance e um serviço onion para os usuários que o preferem, servidos pela mesma aplicação. Cobrimos esse padrão mais adiante. Nada aqui substitui proteger a própria máquina; se ela for comprometida, a sua localização e o seu conteúdo vazam independentemente de como o serviço é publicado, então trate o checklist de proteção da primeira hora como um pré-requisito, não como um detalhe posterior.
SP·03O que a configuração revela, e para quem
Vale ser preciso sobre o modelo de anonimato, porque "serviço onion" costuma ser interpretado como "impossível de rastrear", e a realidade é mais específica. Os clientes nunca descobrem o endereço IP do servidor — essa propriedade é forte, e é o ponto principal. O seu provedor de hospedagem, porém, ainda vê uma máquina na rede dele fazendo um fluxo constante de conexões criptografadas de saída para a rede Tor; ele não consegue ver o endereço onion, o conteúdo, nem os visitantes, mas consegue ver que a máquina fala Tor. Em um host mainstream vinculado à sua identidade, isso é um fio que vale a pena puxar. Em um VPS offshore, pago de forma anônima e sem nenhum nome registrado, isso não leva a lugar nenhum — motivo exato pelo qual as duas técnicas combinam tão bem.
Os modos de falha que realmente desanonimizam serviços onion quase nunca são o próprio Tor. São a aplicação vazando um IP real em uma página de erro, em um cabeçalho, em um e-mail que ela envia, ou em uma requisição de saída para um endpoint clearnet de analytics ou de atualização; um servidor mal configurado revelando o seu hostname ou fuso horário; ou correlação por parte do operador que reutiliza a mesma máquina, chave, ou estilo de escrita em uma identidade clearnet. A criptografia se sustenta; é na tubulação ao redor dela que as pessoas se dão mal. Cada passo abaixo foi escrito para manter essa tubulação bem fechada — vincular ao localhost, não enviar nada em texto claro para fora, e manter a identidade real da máquina fora dela, conforme manter seu nome fora de um servidor.
SP·04Instale um Tor atual, não o que a sua distribuição traz
As distribuições congelam o Tor na versão que acompanhava o lançamento, e as defesas de serviço onion evoluem rápido — a proteção contra negação de serviço nos pontos de introdução, a autorização de cliente v3 e várias correções de estabilidade chegaram todas em versões mais novas do que o que um Debian ou Ubuntu estável traz por padrão. Instale a partir do repositório assinado do próprio Tor Project, para acompanhar os lançamentos atuais e receber atualizações de segurança no cronograma deles, não no da distribuição. O trecho abaixo detecta automaticamente o codinome do seu lançamento e fixa o repositório à chave de assinatura do projeto, de forma que um atacante que adultere o espelho não consiga te entregar um pacote rebaixado.
O Tor roda sem privilégios como o usuário debian-tor no Debian e no Ubuntu, entra em uma sandbox e não precisa de nenhum privilégio de rede especial — ele disca para fora como qualquer cliente. Não há nada para abrir no firewall para o serviço onion em si, o que é a primeira surpresa agradável de todo esse exercício: o seu firewall de bloqueio padrão pode continuar exatamente tão rígido quanto já era.
Vincule a aplicação ao localhost e a mais nada
Um serviço onion é uma porta de entrada para um serviço local comum — um servidor web, uma aplicação, um daemon SSH, qualquer coisa que fale TCP. A regra que mantém tudo isso seguro é que esse serviço local precisa escutar somente na interface de loopback, 127.0.0.1. Se ele também escutar no IP público, você recriou silenciosamente o problema que o serviço onion deveria resolver: o conteúdo agora é alcançável e identificável diretamente, e um escaneamento que associe o seu servidor clearnet ao seu conteúdo onion desfaz o anonimato em uma única requisição. Vincule ao loopback, confirme com ss -tlnp, e deixe o Tor ser a única coisa que jamais se conecta a essa porta.
Como o tráfego entre o Tor e a sua aplicação fica todo em 127.0.0.1, ele nunca toca a rede e não precisa de TLS próprio — o circuito Tor já criptografa tudo de ponta a ponta. Não coloque um certificado autoassinado no listener de loopback; isso só adiciona uma superfície identificável e não traz nenhum ganho. Mantenha a aplicação sem graça: nenhum redirecionamento para o clearnet, nenhum link absoluto do tipo https://your-domain embutido nos templates, nenhuma fonte ou analytics de terceiros que faça o navegador do visitante sair do onion e alcançar a web aberta.
Declare o serviço, depois leia o seu endereço
O serviço onion são três linhas de torrc: um diretório onde o Tor guarda o material da chave, e um mapeamento de uma porta virtual no endereço onion para a porta local em que a sua aplicação escuta. Na primeira reinicialização, o Tor gera um par de chaves Ed25519 nesse diretório e escreve o arquivo hostname — o endereço .onion de 56 caracteres que você vai divulgar. Esse endereço é permanente enquanto você mantiver a chave. Perca a chave e o endereço se vai para sempre; vaze-a e qualquer outra pessoa pode se passar pelo seu serviço. Trate o HiddenServiceDir como as joias da coroa: 0700, de propriedade do usuário do Tor, com backup criptografado e fora da máquina.
Duas configurações merecem lugar ao lado do mapeamento. HiddenServiceEnableIntroDoSDefense 1 permite que os seus pontos de introdução limitem a taxa de inundações de conexão antes que elas cheguem à sua máquina, o que é o mais próximo que um serviço onion tem de uma proteção contra DDoS. Fixar HiddenServiceVersion 3 deixa a versão explícita e preparada para o futuro. Se o serviço deve ser privado em vez de público, a autorização de cliente v3 o restringe a quem possui uma chave que você distribui fora de banda — uma forma limpa de rodar um painel de administração que simplesmente não responde a ninguém sem a credencial.
Anuncie-o, rode os dois, e escolha um endereço memorável
Se você também roda um site clearnet, avise o Tor Browser sobre a versão onion com o cabeçalho de resposta Onion-Location (ou a meta tag HTML equivalente). Navegadores com suporte a onion então oferecem o .onion aos visitantes automaticamente — a forma padrão como sites de grandes jornais e mecanismos de busca divulgam o deles. Servir a mesma aplicação tanto em um domínio quanto em um endereço onion é a norma, não um caso exótico: uma base de código, um banco de dados, duas portas de entrada, com o lado clearnet ficando atrás do costumeiro proxy reverso que esconde a origem e o lado onion não expondo nada.
O endereço padrão é uma string aleatória de 56 caracteres, que é segura mas difícil de memorizar. Um endereço vanity permite forçar por força bruta uma chave cuja codificação base32 comece com um prefixo escolhido — alguns caracteres legíveis é rápido, mas cada caractere adicional multiplica o trabalho por 32, então qualquer coisa além de sete ou oito letras vira um trabalho computacional sério. Gere chaves vanity em uma máquina local confiável, nunca no servidor, e coloque a chave resultante no HiddenServiceDir exatamente como você restauraria um backup. Um prefixo reconhecível também neutraliza um ataque real: clones de phishing que contam com o fato de ninguém ler uma parede de caracteres aleatórios.
Mantenha em funcionamento: desempenho, monitoramento e higiene da chave
Uma conexão onion atravessa seis relays em vez do zero habitual, então a latência é maior e a vazão menor do que em um servidor diretamente alcançável — isso é física, não má configuração, e nenhum ajuste remove isso. Resista à tentação dos modos single-hop ou não anônimos para recuperar velocidade; eles trocam exatamente a propriedade pela qual você construiu tudo isso. O que você pode fazer é manter o Tor atualizado, deixar a defesa contra DoS nos pontos de introdução ligada, colocar cache na frente de um serviço movimentado para que cada requisição exija menos trabalho, e dimensionar a máquina com folga de CPU, porque a criptografia do Tor não é de graça. Um VPS offshore modesto a partir de $8.00/mês lida com um site onion típico sem dificuldade.
No dia a dia operacional, três hábitos mantêm um serviço onion saudável. Observe o journalctl -u tor@default em busca de erros de alcançabilidade e de publicação de descritor, em vez de presumir que silêncio significa saúde. Faça backup do HiddenServiceDir no dia em que você o cria e depois de qualquer mudança, criptografado e fora da máquina, porque essa chave é a única coisa que você não consegue regenerar. E mantenha a identidade operacional da máquina limpa — uma chave nova em um VPS anônimo novo vale pouco se os mesmos hábitos do operador a associarem de volta a um eu clearnet. O serviço vai rodar tranquilamente por anos sem ser tocado; a disciplina está na tubulação ao redor dele, não no serviço em si.
Passo a passo
-
01
Comece com uma máquina protegida e anônima
Implante um VPS offshore — online em cerca de 15 min — e faça primeiro o trabalho chato e essencial: um usuário nomeado com sudo, SSH só por chave, um firewall de bloqueio padrão, e atualizações de segurança automáticas. O serviço onion não adiciona nada que você precise abrir nesse firewall, então uma máquina travada continua travada. Não pule essa parte; um endereço onion na frente de um servidor comprometido não esconde nada.
ssh admin@203.0.113.10 sudo apt update && sudo apt full-upgrade -y # firewall stays default-deny; the onion service needs no inbound port sudo ufw status verbose
-
02
Instale o Tor a partir do repositório do Tor Project
Adicione o repositório assinado do projeto para rodar um Tor atual com as defesas mais recentes de serviço onion, depois instale-o. O codinome é detectado a partir de
/etc/os-release, e o repositório é fixado à chave de assinatura do Tor, para que um espelho adulterado não consiga te rebaixar de versão.sudo apt install -y apt-transport-https wget gpg . /etc/os-release wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc \ | gpg --dearmor | sudo tee /usr/share/keyrings/tor.gpg >/dev/null echo "deb [signed-by=/usr/share/keyrings/tor.gpg] https://deb.torproject.org/torproject.org $VERSION_CODENAME main" \ | sudo tee /etc/apt/sources.list.d/tor.list sudo apt update && sudo apt install -y tor deb.torproject.org-keyring
-
03
Vincule o seu serviço somente ao localhost
Aponte o que quer que você esteja publicando para a interface de loopback e para mais nenhum lugar. Aqui o nginx serve um site estático em
127.0.0.1:8080; o mesmo princípio vale para qualquer aplicação — vincule a127.0.0.1, não a0.0.0.0. Recarregue, depois comprove comssque nada está escutando em um endereço roteável.# /etc/nginx/sites-available/onion.conf server { listen 127.0.0.1:8080; server_name _; root /var/www/onion; index index.html; }Ative-o, recarregue, e confirme que o vínculo é somente loopback:
sudo ln -s /etc/nginx/sites-available/onion.conf /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx ss -tlnp | grep 8080 # must show 127.0.0.1:8080, never 0.0.0.0:8080
-
04
Declare o serviço onion no torrc
Adicione o serviço ao
/etc/tor/torrc: um diretório de chave e um mapeamento de porta da porta virtual 80 do onion para a sua porta local 8080. Ative a defesa contra DoS nos pontos de introdução e fixe a versão do endereço. Depois reinicie o Tor — no Debian e no Ubuntu a instância em execução é ator@default.# /etc/tor/torrc HiddenServiceDir /var/lib/tor/onion-www/ HiddenServicePort 80 127.0.0.1:8080 HiddenServiceVersion 3 HiddenServiceEnableIntroDoSDefense 1 sudo systemctl restart tor@default
-
05
Leia o endereço e tranque a chave
O Tor já criou o material da chave e escreveu o seu endereço. Leia-o, divulgue-o — e garanta que o diretório esteja em
0700e pertença ao usuário do Tor, o que o Tor já impõe, mas que uma restauração descuidada pode quebrar. O arquivohs_ed25519_secret_keynesse diretório é a sua identidade; nada mais é.sudo cat /var/lib/tor/onion-www/hostname # example: 2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion sudo ls -l /var/lib/tor/onion-www/ # hostname hs_ed25519_public_key hs_ed25519_secret_key sudo chown -R debian-tor:debian-tor /var/lib/tor/onion-www sudo chmod 700 /var/lib/tor/onion-www
-
06
Teste pelo Tor, depois anuncie
Verifique o serviço a partir de uma máquina que tenha o Tor rodando, usando
torsockspara que a requisição passe pela rede em vez do clearnet. Assim que ele responder, opcionalmente aponte os visitantes clearnet para a versão onion com um cabeçalhoOnion-Locationno seu site normal.# from any box running tor: torsocks curl -sSI http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/ | head # advertise the onion from your clearnet nginx (inside the https server block): add_header Onion-Location "http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion$request_uri";
-
07
Faça backup da chave e escreva o runbook
O endereço nasce e morre com o diretório da chave. Arquive-o assim que ele existir, mova o arquivo para fora da máquina, para um armazenamento criptografado, e tenha em mente que restaurá-lo em qualquer lugar reproduz exatamente o mesmo endereço
.onion. Depois anote os dois comandos que você realmente vai precisar daqui a seis meses — onde está a chave e como checar a saúde do serviço — porque ele roda intocado por tempo suficiente para que você vá esquecer.sudo tar czf onion-www-key.tar.gz -C /var/lib/tor onion-www # copy onion-www-key.tar.gz to encrypted off-box storage, then delete the local copy # health check any time: sudo systemctl status tor@default sudo journalctl -u tor@default --since "1 hour ago" | grep -i "onion\|error"


