Hospedagem de alho e cebola: como levantar um recurso da web para que o domínio não seja retirado





Isenção de responsabilidade: as ferramentas descritas aqui são totalmente legais. É como uma faca: alguém corta repolho em uma salada, alguém usa para ataques. Portanto, o post é dedicado exclusivamente a ferramentas que podem ser usadas para fins bons e ruins.



O DNS global é uma coisa maravilhosa que sobreviveu por décadas. Mas tem um problema fundamental - seu domínio pode simplesmente ser dividido se de repente decidirem que você violou algo. Ou alguém com dinheiro e contatos terá rancor de você. Todo mundo se lembra da história do mesmo torrents.ru. Se, por algum motivo, você quiser remover esses riscos, pode procurar redes de sobreposição que simplesmente não têm um regulador capaz de dividir um nome de domínio. Portanto, aumentaremos os recursos da web onion e i2p.



Anéis de cebola



Vamos começar com os clássicos. Acho que em Habré quase todo mundo usava o Tor na forma do pacote do navegador Tor . Isso me ajudou muito quando, no processo de busca do Telegram, eles repentinamente começaram a interromper abruptamente a conectividade com os maiores hosters nos lugares mais inesperados. Nesse modo, o Tor usa a criptografia cebola clássica, agrupando os dados camada por camada de forma que seja impossível estabelecer a origem e o destino do pacote. No entanto, o ponto final da rota ainda é a Internet regular, onde acabamos pelos nós de Saída.



Esta solução tem vários problemas:



  1. Exit- , , . , , , .
  2. tor , .


-



Portanto, aumentaremos o recurso onion diretamente na rede, sem acesso à Internet normal. Por exemplo, como um ponto de entrada de backup adicional para seu recurso. Vamos supor que você já tenha um servidor web com algum conteúdo servido pelo nginx. Para começar, se você não quer brilhar na Internet pública, não tenha preguiça de ir ao iptables e configurar um firewall. Você deve ser impedido de acessar seu servidor web de qualquer lugar, exceto localhost. Como resultado, você obteve um site acessível localmente em localhost : 8080 /. A fixação adicional de https será redundante aqui, uma vez que o transporte do tor assumirá essa tarefa.



Expansão do TOR



Vou considerar a instalação usando o Ubuntu como exemplo, mas não haverá diferenças fundamentais com outras distribuições. Primeiro, vamos definir o repositório. A documentação oficial não recomenda o uso de pacotes mantidos pela própria distribuição, pois eles podem conter vulnerabilidades críticas que já foram corrigidas pelos desenvolvedores. Além disso, os desenvolvedores recomendam usar o mecanismo autônomo de atualizações para atualizações automáticas, a fim de garantir sua entrega oportuna.



Crie um arquivo para um repositório adicional:



# nano /etc/apt/sources.list.d/tor.list


E adicione os endereços necessários a ele:



deb https://deb.torproject.org/torproject.org bionic main
deb-src https://deb.torproject.org/torproject.org bionic main


Agora precisamos cuidar da chave gpg, sem a qual o servidor não confiará em novos pacotes.



# curl https://deb.torproject.org/torproject.org A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
# gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -


Agora você pode instalar o pacote principal do upstream e as chaves para renovação automática de assinatura.



# apt update
# apt install tor deb.torproject.org-keyring


Configurando proxy



Em / etc / tor / torrc, você encontrará o arquivo de configuração do daemon. Após atualizá-lo, não se esqueça de reiniciá-lo.

Só quero alertar usuários especialmente curiosos. Não habilite o modo de retransmissão em sua máquina doméstica! Especialmente no modo de saída do nó. Eles podem bater. Em um VPS, eu também não configuraria o nó como um relé, pois isso criará uma carga bastante significativa no processador e no tráfego. Em um canal amplo, você pode facilmente atingir 2 a 3 terabytes por mês.



Encontre uma seção em torrc parecida com esta:



############### This section is just for location-hidden services ###


Aqui você precisa registrar seu recurso da web localhost. Mais ou menos assim:



HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080


Ou você pode usar soquetes Unix:



HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/
HiddenServicePort 80 unix:/path/to/socket


Nós pegamos o endereço



É isso, agora reiniciamos o daemon tor via systemctl e olhamos para HiddenServiceDir. Haverá vários arquivos - a chave privada e o nome do host do onion. É um identificador aleatório de 16 caracteres. Por exemplo, gjobqjj7wyczbqie.onion é o endereço do recurso de pesquisa Candle. O endereço é completamente aleatório, mas com uma pesquisa suficientemente longa, você pode gerar um par legível a partir do endereço e da chave privada. Claro, nem todos os 16 caracteres - levaria bilhões de anos. Por exemplo, o conhecido catálogo de livros de Flibusta tem um espelho flibustahezeous3.onion , e o Facebook gastou muitos recursos para escolher o mais eufônico das opções geradas: facebookcorewwwi.onion .



É isso, depois de algum tempo seu recurso será anunciado e estará disponível globalmente. Observe que você pode fazer proxy não apenas do protocolo http, mas também de qualquer outro.



Alho



imagem

A segunda opção foi concebida como ainda mais paranóica por natureza. O projeto i2p não foi originalmente concebido como um meio de proxy de tráfego para a Internet regular e, por arquitetura, é uma rede overlay completamente fechada. Existem portas separadas em ambas as direções, mas esta é uma exceção. E é potencialmente inseguro.



imagem

Logotipo i2p de referência vermelha e implementação i2pd magenta



I2p tem várias opções para implementar nós de roteador de software. A implementação oficial é escrita em Java. E devora monstruosamente todos os recursos disponíveis em termos de RAM e CPU. No entanto, é ela quem é considerada referência e é regularmente auditada. Eu recomendaria que você use a versão muito mais leve, i2pd, escrita em C ++. Ele tem suas próprias nuances que podem fazer com que alguns aplicativos i2p falhem, mas no geral é uma ótima implementação alternativa. O projeto está sendo serrado ativamente no momento.



Instale o demônio



A melhor parte é que os autores forneceram muitas opções de implantação, incluindo docker e snap. Você pode seguir o caminho do repositório clássico.



sudo add-apt-repository ppa:purplei2p/i2pd
sudo apt-get update
sudo apt-get install i2pd


Mas aconselho usar o snap. Ele não apenas implantará o daemon de forma rápida e conveniente, mas também fornecerá atualizações automáticas diretamente do upstream, dependendo do canal de distribuição selecionado.



no_face@i2pd:~$ snap info i2pd
name:      i2pd
summary:   Distributed anonymous networking framework
publisher: Darknet Villain (supervillain)
store-url: https://snapcraft.io/i2pd
license:   BSD-3-Clause
description: |
  i2pd (I2P Daemon) is a full-featured C++ implementation of I2P client.
  I2P (Invisible Internet Protocol) is a universal anonymous network layer.
  All communications over I2P are anonymous and end-to-end encrypted,
  participants don't reveal their real IP addresses.
snap-id: clap1qoxuw4OdjJHVqEeHEqBBgIvwOTv
channels:
  latest/stable:    2.32.1 2020-06-02 (62) 16MB -
  latest/candidate: ↑
  latest/beta:      ↑
  latest/edge:      2.32.1 2020-06-02 (62) 16MB -


Instale o snap, caso ainda não o tenha feito, e defina a opção estável padrão:



apt install snapd
snap install i2pd


Configurando



Ao contrário da versão web-gui Java, o i2pd não tem tantas configurações, reviravoltas e guias. Apenas as coisas mais necessárias até o ascetismo. No entanto, a maneira mais fácil é configurá-lo diretamente no arquivo de configuração.



Para que seu recurso da web fique disponível no i2p, você precisa fazer um proxy da mesma maneira que com o onion. Para fazer isso, vá para ~ / .i2pd / tunnels.conf e adicione seu back-end.



[anon-website]
type = http
host = 127.0.0.1
port = 8080
keys = anon-website.dat


Após reiniciar o daemon, você obterá um endereço aleatório de 32 bits. Ele pode ser visualizado no console da web, que está disponível por padrão em 127.0.0.1 : 7070 /? Page = i2p_tunnels. Não se esqueça de permitir o acesso a ele de seu endereço IP, se necessário. Por padrão, ele está disponível apenas na interface local. Haverá algo assustador como ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2p.



A rede i2p tem uma aparência de DNS, mas é mais como uma lista dispersa de / etc / hosts. Você se inscreve em fontes específicas no console que informam como acessar o flibusta.i2p condicional . Portanto, faz sentido adicionar um nome mais ou menos bonito a grandes recursos como inr.i2p.



O i2p e o onion podem ser implantados conosco?



Só quero avisar RuVDS não hospedagem à prova de balas. Em caso de reclamação motivada contra o nosso cliente, podemos rescindir o contrato e extinguir a máquina virtual. A maioria dos hosters fará o mesmo. No entanto, devido às peculiaridades da arquitetura tor e especialmente do i2p, é muito difícil, e muitas vezes simplesmente impossível, determinar exatamente onde o site está hospedado.



No entanto, não há nada de ilegal no próprio uso de tais ferramentas. Portanto, não nos importamos se você abrir um espelho de seu recurso legal da web em redes de sobreposição. Em qualquer caso, recomendo fortemente não experimentar cegamente o tor em sua máquina doméstica. O IP pode ser colocado na lista negra ou o pative chegará. Melhor alugar um VPS, é barato.






All Articles