Как сделать обратный прокси-сервер nginx прямым к скрытому сервису? - PullRequest
2 голосов
/ 03 апреля 2019

Можно ли создать туннель веб-сайта Clearnet через скрытый сервис tor? Пример, если кто-то владел blah.com и указал на IP-адрес сервера 1.2.3.4, но хотел, чтобы 1.2.3.4 делал запросы прокси к скрытому сервису.

Смысл в том, чтобы иметь «выглядящий» веб-сайт в чистом виде, в то время как содержимое самого сайта находится на скрытом сервере, в основном то, что будет делать proxy_pass, за исключением того, что он должен подключаться к localhost.

Есть идеи, как это можно / можно сделать?

1 Ответ

0 голосов
/ 03 апреля 2019

Вы не указали язык бэкэнда, поэтому я покажу вам пример использования Python Django.

Предполагая, что на вашем сервере настроен tor (, а не tor browser ), вы можете просто сделать GET-запрос, используя requests (или aiohttp, urllib2,и т. д.), затем перешлите ответ вашему клиенту:

from django.shortcuts import render
import requests

def someView(req):
    url = 'someWebsite.onion'
    proxy = {
        'http':'socks5h://localhost:9050',
        'https':'socks5h://localhost:9050'
    }
    html = requests.get(url, proxy=proxy)
    context = {'html':html}
    return render(req, 'someTemplate.html', context)  

Затем на someTemplate.html:

{{ html }}

Возможно, существуют более элегантные способы трубопровод html-данные для вашего клиента, но это будет сильно зависеть от того, какой бэкэнд вы используете.

Если вы не знакомы с работой tor в качестве прокси на локальном компьютере, вам следует прочитать об этом здесь .

В linux:

  • установка: apt install tor
  • запуск: tor

Вклmac:

  • установка: brew install tor (требуется homebrew )
  • запуск: tor

В Windows:

  • Вы SOL xD.

Я не знаю, как настроить прокси tor на сервере nginx , но это хороший вопрос для продолжения, который вы можете задать.

...