Как обойти блокировки с помощью Tor в Docker

от автора

Обход блокировок через Tor

Обход блокировок через Tor

Если запустить Tor в Docker, то его можно использовать как прокси-сервер для обхода блокировок с разных сторон.

В этой инструкции мы запустим сам прокси-сервер. Настроим локальный компьютер для серфинга в интернете, минуя внутреннюю блокировку. И настроим сеть для другого контейнера, чтобы он мог получать данные, например антивирусные базы, минуя внешнюю блокировку.

Для запуска нам понадобится Ubuntu с установленными: git, make и docker.

Скопируем проект tor-docker:

git clone https://github.com/HardAndHeavy/tor-docker cd tor-docker

Получаем Tor-мосты у Телеграм-бота @GetBridgesBot:

Получение Tor-мостов у Телеграм-бота Tor Bridges.

Получение Tor-мостов у Телеграм-бота Tor Bridges.

Инициализируем файл torrc командой make gen :

Создание файла torrc командой make gen

Создание файла torrc командой make gen

Запускаем прокси-сервер командой make run.

Настройка локального компьютера

На примере Ubuntu 24.04. В настройках сети (Settings — Network) настраиваем работу с прокси:

  • Network Proxy переводим в положение On;

  • Configuration устанавливаем в Manual;

  • SOCKS Host:

    • URL — 127.0.0.1;

    • Port — 9150.

Теперь можно спокойно серфить интернет, минуя внутреннюю блокировку.

Настройка других контейнеров

Для демонстрации возьмём тестовое приложение, которое показывает текущий IP-адрес. В папке проекта (tor-docker) перейдём в каталог examples/what-is-my-ip и выполним команду make pure-test. По адресу http://localhost:3000/ поднимется приложение, которое покажет текущий IP-адрес. Остановим приложение (Ctrl+C).

Для проксирования приложения необходимо добавить в общую сеть контейнер с Tor. И установить переменную HTTPS_PROXY. В текущем каталоге эта настройка описана в файле docker-compose.yaml:

services:   tor-test:     image: hardandheavy/tor:8     container_name: tor-test     volumes:       - ../../torrc:/etc/tor/torrc    app-test:     image: hardandheavy/example-for-tor:1     container_name: app-test     depends_on:       - tor-test     ports:       - 3000:3000     environment:       - HTTPS_PROXY=socks5://tor-test:9150

Такая настройка запускается командой make tor-test . По адресу http://localhost:3000/ на этот раз будет IP-адрес предоставленный Tor. А значит, наше приложение теперь работает минуя внешнюю блокировку.

Необходимо создать общую сеть в которой будет прокси-сервер с Tor (tor_network="tor-net"). А при запуске контейнера в HTTPS_PROXY укажем наш прокси-сервер.

Дополнительный пример

Пример из рабочего проекта без демонстрации. Здесь представлены ключевые моменты настройки файлов Ansible для запуска приложения по обнаружению вредоносных программ. После данной настройки антивирусные базы качаются без внешней блокировки.

Инициализация переменных:

tor_image: hardandheavy/tor:8 tor_network: tor-net tor_https_proxy: socks5://tor:9150

Настройка Tor:

- name: Создание сети tor   community.docker.docker_network:     name: '{{ tor_network }}'  - name: Запуск tor   community.docker.docker_container:     name: tor     image: '{{ tor_image }}'     restart_policy: always     volumes:       - '{{ tor_file }}:/etc/tor/torrc'     networks:       - name: '{{ tor_network }}' 

Настройка приложения:

- name: Запуск обнаружения вирусов и вредноносных по для почты   community.docker.docker_container:     name: mail-virus     image: '{{ mail_virus_image }}'     restart_policy: always     env_file: '{{ mail_env_file }}'     env:       HTTPS_PROXY: '{{ tor_https_proxy }}'     volumes:       - '{{ mail_clamav_path }}:/var/lib/clamav'     networks:       - name: '{{ mail_network }}'         aliases:           - virus       - name: '{{ tor_network }}' 


ссылка на оригинал статьи https://habr.com/ru/articles/857474/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *