Анонимизация всего траффика через VPN + TOR/I2P. Собираем миддлбокс с нуля

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



    Это поможет не думать о бесконечных настройках прокси и onion, перестать бояться на тему «а не сливает ли торрент клиент мой реальный IP адрес, так как не полностью поддерживает прокси?» и, наконец, быть застрахованным от законодательного запрета TOR-а в России.

    Когда я говорю «TOR», я подразумеваю «TOR и I2P». По схожей методике сюда можно подключить любой даркнет.

    Статья — «чисто конкретная». Теория уже неплохо изложена в статье Pandoshabrahabr.ru/post/204266. В данном тексте будет дана детальная инструкция «как сделать, чтобы работало».

    Постановка задачи


    1. Мой компьютер должен по нажатию одной кнопки переходить в режим «весь трафик — не русский».

    2. По нажатию второй кнопки он должен переходить в режим «весь траффик идет через TOR»

    3. Третья кнопка — для I2P.

    4. Входная TOR-нода должна находиться за рубежом.

    5. Все это должно работать под linux, windows, android. Заранее: с OS X и iPhone тоже все в порядке, просто у меня их нету, так что протестить не смогу.

    Дисклеймер


    Использование tor over vpn не обязательно повышает анонимность. Подробнее: trac.torproject.org/projects/tor/wiki/doc/TorPlusVPN. В данной статье описывается средство, которое, тем не менее, нужно применять с умом.

    Хостинг


    Первым делом нам понадобится сравнительно дешевая VPS-ка, владельцы которой не против, чтобы там крутился TOR (и не русская, разумеется). Лично я использую DigitalOcean. В их ToS не специфицирован запрещенный трафик (хотя если будете качать пиратские торренты прямо с их IP — заблокируют на раз. Ну, собственно, нам для этого и нужен TOR...). Стоит это 5$ в месяц.

    Регистрироваться можно прямо тут: www.digitalocean.com/?refcode=82e536b1a24d (ссылка реферальная, вам $10, мне $25. Не хотите играть в это дело — уберите refcode).

    Если Вы знаете лучшие или хотя бы не худшие варианты хостинга под такие цели — пишите в комменты, обновлю статью.

    Я не буду описывать конкретную процедуру создания VPS-ки, так как это зависит от хостинга и просто. Давайте предположим, что вы в итоге можете выполнить команду,

    ssh root@1.2.3.4


    и получить shell на VPS-ку. Я буду считать, что на VPS-ке крутится debian 7. По крайней мере, эта статья тестировалась на debian 7. На убунте тоже заработает, наверное.

    Установка пакетов


    Сначала немного приложений, которые облегчают нам жизнь. Не забудьте поставить ваш любимый редактор, mc если нужно и т.п.
    apt-get update
    apt-get upgrade # Если с обновлением придет новое ядро -- перезагрузитесь!
    apt-get install fail2ban unattended-upgrades etckeeper # я всегда ставлю это на новый сервер
    


    I2P нету в репозитории debian, так что придется добавить новый источник.

    echo "deb http://deb.i2p2.no/ wheezy main" >> /etc/apt/sources.list.d/i2p.list
    echo "deb-src http://deb.i2p2.no/ wheezy main" >> /etc/apt/sources.list.d/i2p.list
    apt-get update
    apt-get install i2p-keyring
    apt-get update
    


    Теперь поставим основные пакеты — TOR, VPN и I2P. Также нам пригодится DNS сервер. Я использую unbound.

    apt-get install tor i2p unbound openvpn privoxy
    


    Настройка VPN


    Я буду держать все настройки VPN в /opt/vpn. Для начала следует сгенерировать сертификаты для сервера и клиента.

    N.B. Мы будем запускать несколько серверов (один под tor, второй под обычный трафик) и использовать для них один и тот же сертификат. Это не обязательно. Вполне можно (и нужно) генерировать независимый сертификат или даже свою CA для каждого из openvpn серверов.

    mkdir /opt/vpn
    mkdir /opt/vpn/log
    cp -rf /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /opt/vpn/rsa # Это набор скриптов для создания ключей. Можно и без них, но сложно.
    


    Теперь сгенерируем новую CA и необходимые сертификаты.
    cd /opt/vpn/rsa
    . ./vars
    ./clean-all
    ./build-ca # Спросит кучу вопросов. Отвечайте что угодно.
    ./build-key-server server # Опять куча вопросов. Пароля не вводите. На забудьте подписать сертификат в конце
    ./build-key --batch client # Уффф. Хоть тут не спрашивает ничего. 
    ./build-dh
    


    Изучите папку /opt/vpn/rsa/keys. Теперь там есть несколько пар ключ+сертификат.

    ca.{crt,key} — certificate authority
    server.{crt,key} — ключ сервера
    client.{crt,key} — ключ клиента.

    Клиенту нужно отдать только ca.crt, client.crt и client.key, остальные файлы должны оставаться только на сервере.

    Пора писать конфигурационный файл для сервера. Положите его в /etc/openvpn/00-standard.conf

    port 1201
    proto udp
    dev tun
    ca /opt/vpn/rsa/keys/ca.crt
    
    cert /opt/vpn/rsa/keys/server.crt
    key /opt/vpn/rsa/keys/server.key
    
    dh /opt/vpn/rsa/keys/dh1024.pem
    
    # Server Routing
    # server-bridge 10.8.1.1 255.255.255.0 10.8.1.50 10.8.1.100
    server 10.8.1.0 255.255.255.0
    
    #Client configuration
    push "redirect-gateway def1"
    push "dhcp-option DNS 8.8.8.8"
    
    keepalive 10 120
    comp-lzo
    persist-key
    persist-tun
    
    log /opt/vpn/log/server-standard.log
    status /opt/vpn/log/status-standard.log
    verb 3
    


    Попробуйте запустить openVPN
    /etc/init.d/openvpn restart
    

    Если не получилось — у вас баг: bugs.debian.org/cgi-bin/bugreport.cgi?bug=767836#43 Поправьте согласно инструкции и добейтесь успешного запуска сервера.

    ОК, VPN работает. Самое время подключиться к нему. Для этого на клиенте напишем конфиг-файл:

    client
    dev tun
    proto udp
    # Тут должен быть реальный внешний IP адрес сервера
    remote 1.2.3.4 1201
    resolv-retry infinite
    
    nobind
    
    persist-key
    persist-tun
    
    comp-lzo
    verb 3
    
    up /etc/openvpn/update-resolv-conf
    down /etc/openvpn/update-resolv-conf
    <ca>
    [Вставьте сюда содержимое ca.crt]
    </ca>
    <cert>
    [Вставьте сюда содержимое client.crt]
    </cert>
    <key>
    [Вставьте сюда содержимое client.key]
    </key>
    


    Теперь попробуйте подключиться
    sudo openvpn --config client.conf --script-security 2
    


    После появления надписи «Initialization Sequence Completed» вы подключены и должны успешно пинговать 10.8.1.1. Интернет пропадет, это нормально.

    Настройка интернета


    Допустим, мы не хотим использовать TOR, а просто хотим себе не русский внешний IP. В этом случае при помощи вот этого скрипта:

    #!/bin/bash
    SUBNET=10.8.1.0/24
    
    echo 1 >  /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -s $SUBNET -o eth0 -j MASQUERADE
    


    вы достигнете желаемого. Перепишите это в /etc/rc.local.

    Настройка TOR


    Если вы прочитали и выполнили предыдущую часть — не забудьте очистить iptables
    iptables -F
    iptables -t nat -F
    


    Теперь допустим, что вы таки хотите VPN через TOR (и предыдущий пункт не выполняли). Тогда:

    допишите в конец /etc/tor/torrc следующее:

    VirtualAddrNetworkIPv4 10.192.0.0/10
    AutomapHostsOnResolve 1
    TransPort 9040
    TransListenAddress 10.8.1.1
    DNSPort 53
    DNSListenAddress 10.8.1.1
    
    
    AccountingStart day 0:00
    AccountingMax 10 GBytes
    RelayBandwidthRate 100 KBytes
    RelayBandwidthBurst 500 KBytes
    


    также изменим наш конфиг-файл сервера /etc/openvpn/00-standard.conf. Измените DNS с гугловского на локальный. Не забудьте перезапустить openvpn.
    push "dhcp-option DNS 10.8.1.1"
    


    Наконец, следующая конструкция на bash перенаправит весь входящий трафик vpn через tor

    #!/bin/sh
    
    _trans_port="9040"
    _int_if="tun0"
    
    iptables -t nat -A PREROUTING -i $_int_if -p udp --dport 53 -j REDIRECT --to-ports 53
    iptables -t nat -A PREROUTING -i $_int_if -p tcp --syn -j REDIRECT --to-ports $_trans_port
    
    /etc/init.d/tor restart
    


    Кстати, запомните эту конструкцию. Это универсальный способ перенаправить весь трафик с заданной сетевой карты через прозрачный прокси. I2P будем добавлять точно так же.

    Готово. Подключитесь к VPN. Убедитесь, что у Вас TOR-овский IP-шник. Зайдите на какой-нибудь .onion сайт, чтобы проверить: dns тоже работает.

    Настройка I2P


    С I2P сложности. У них нет собственного DNS сервера, так что придется делать свой.

    Откройте /etc/unbound/unbound.conf и допишите в конец:
        interface: 10.8.1.1
        logfile: "/etc/unbound/unbound.log"
        local-zone: "i2p" redirect
        local-data: "i2p A 10.191.0.1"
        access-control: 127.0.0.0/8 allow
        access-control: 10.0.0.0/8 allow
        local-zone: "." redirect
        local-data: ". A 10.191.0.1"
        local-zone: "*" redirect
        local-data: "* A 10.191.0.1"
    

    После этого любой (!) домен будет раскрываться в заведомо несуществующий IP адрес 10.191.0.1. Осталось «ловить» такой трафик и перенаправлять на localhost:8118 — именно тут слушает I2P.

    Кстати говоря, пока что не слушает. Выполните
    dpkg-reconfigure i2p
    

    и выставьте флаг, чтобы стартовал при загрузке.

    Остановите tor. Запустите unbound.
    /etc/init.d/tor stop
    /etc/init.d/unbound restart
    


    Теперь настроим privoxy в связке в I2P. Допишите в конец /etc/privoxy/config
    accept-intercepted-requests 1
    forward / 127.0.0.1:4444
    listen-address  10.8.1.1:8118
    

    и рестартаните privoxy

    Точно так же, как и в случае с TOR, смените DNS на локальный в конфигурации vpn-сервера:

    push "dhcp-option DNS 10.8.1.1"
    


    Если вы уже пробовали редиректить TOR — не забудьте почистить iptables:
    iptables -F
    iptables -t nat -F
    


    Осталось выполнить переадресацию:
    #!/bin/sh
    _trans_port="8118"
    _int_if="tun0"
    
    iptables -t nat -A PREROUTING -i $_int_if -p udp --dport 53 -j REDIRECT --to-ports 53
    iptables -t nat -A PREROUTING -i $_int_if -p tcp --syn -j REDIRECT --to-ports $_trans_port
    


    Знакомо, правда? Единственное отличие — номер порта прокси.

    Подключитесь к VPN. Вы в I2P. Откройте epsilon.i2p, убедитесь, что сеть работает.

    Что дальше?



    Дальше Вам пора сделать так, чтобы они не конфликтовали. Вместо одного сервера /etc/openvpn/00-standard сделать три: 00-standard для обычного трафика, 01-tor для tor-а, и 02-i2p для i2p. Назначьте им разные подсети (например, 10.8.2.* для tor и 10.8.3.* для i2p). После этого tor и unbound перестанут конфликтовать и вы сможете подключаться к любой из трех одновременно работающих сетей.

    Кроме того, сейчас клиент не проверяет сертификат сервера. Это можно поправить.

    А еще можно запилить виртуалку, для которой выкатить tun0, трафик которого идет через TOR, после чего виртуалка не будет знать даже про VPN. А в хосте этой виртуалки прописать роутинг так, чтобы без VPN не подключалось вообще.

    А еще надо лимит скорости в I2P поставить. И логи у VPN не ротируются. И веб-морды нет.

    А еще… а еще я все это обязательно опишу — в других статьях. Засим — спасибо за внимание!

    Использованные источники


    trac.torproject.org/projects/tor/wiki/doc/TransparentProxy
    grepular.com/Transparent_Access_to_Tor_Hidden_Services
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 43
    • 0
      Спасибо вам за статью, только у меня вопрос: какой резон использовать Tor или i2p для приведенного в примере торрент-клиента?
      Там же скорость никакая, и скачивание будет не комфортным.
      Сразу скажу, что я слежу о скорости не по личному опыту, а по мнениям "в интернетах", и Tor или i2p не пользуюсь, предпочитая в 9 случаях из 10 sock5 прокси и в 1-ом случае VPN, естественно через арендуемый дешево VPS.
      Обычный sock5 или vpn позволяет соблюдать полную анонимность до арендуемого сервера. А «после» сервера цивилизованной стране, где пользователь его арендует, дела нету (если, конечно, не сводить в крайность).
      К тому же Sock5 прокси не сливает ваш реальный IP конечной стороне. DNS можно резолвить через него же и коннектиться к нему по IP, тогда кроме SSH сессии ваш провайдер вообще ничего не увидит. Про VPN я вообщу молчу.
      Шанс того, что к вашему хостеру придет запрос от органов, на который ваш хостер предоставит логи, или хуже того доступ — я просто не верю. Я задавал такой вопрос своему хостеру интереса ради, и мне сообщили, что ничего никуда не предоставят в случае запроса из России.

      Это не в коем случае не агитация против Tor или i2p, просто я не понимаю, зачем нужен такой уровень секретности, который накладывает такие ограничения на коннект?
      Да и зачем в статье, претендующий на такой уровень, использовать debian или ubuntu, если есть специальные дистрибутивы вроде того же tail для параноиков?
      • 0
        Чтобы использовать торрент для скачивания обычных фильмов, игр, музыки вполне хватит простого VPN (красная цена 3 доллара в месяц). Затраты на деанон даже в таком случае намного больше штрафа, который можно вытрясти из среднего нарушителя. И то это нужно только в некоторых странах (к которым относятся некоторые европейские страны, а РФ — нет). А вот кто релизит фильмы раньше премьеры — простого VPN может не хватить. То же относится к распространителям запрещённой информации и политическим активистам. Однако это не повод использовать Tor для торрентов. В таких случаях можно было бы запускать торрент на VPS, с которым работают только через Tor (с самого начала его существования, то есть начиная от формы регистрации на сайте хостера).
        • 0
          Дискуссия за безопасность сейчас начнется в другом треде, так что тут отвечу только «зачем».

          1. Есть достаточно много ценных .onion и .i2p ресурсов. Некоторый ценный для IT-шника контент проще найти в даркнете.

          2. Про блокировки сайтов все сказано 1000 раз, только вот балуется этим не только РФ. Да, я хочу смотреть эль-телевизор (название изменено) независимо от того, случился у америки очередной приступ паранойи или нет.

          3. Что же до скорости, то она последнее время вполне приличная. Проблем нет даже с просмотром видеороликов.

          P.S. почему не tails — смотри ниже. Потому, что tails хуже в реалиях РФ.
          • 0
            А можно пару-тройку таких ресурсов привести в качестве примера?
        • +1
          Обычный sock5 или vpn позволяет соблюдать полную анонимность до арендуемого сервера.


          Нет, вы не правы. Ни socks5, ни vpn до арендуемого сервера не даёт абсолютно никакой анонимности, но предоставляет некоторую безопасность соединения. Tor же, напротив, предоставляет некоторую анонимность и не даёт абсолютно никакой безопасности. Поэтому если целью стоит получение некоторой безопасности при некоторой анонимности, то придется использовать VPN-over-Tor.

          Я категорически настаиваю на том, чтобы ясное понимание терминов «анонимность» и «безопасность» было достигнуто до того, как будет написана первая строчка любого конфига.
          • 0
            Вы правы. Но Sock5 прокси обеспечивает безопасность передаваемых данных независимо от страны проживания, и анонимность в стране отличной от страны пользователя, так как пользователь уже засветился в своей стране (А) в сессии на сервер в стране (B) и соответственно если он начнет лазить по ресурсам в своей стране (A), то связь можно легко доказать (в стране А не утруждают себя с доказательствами).
            При этом если пользователь, проживающий в стране А через sock5 прокси в стране B арендует новый сервер в стране C (через прокси в стране B), и будет использовать его как прокси (A->B->C->wWw), то уровень безопасности передаваемой информации не изменится, но он потеряет в анонимности в стране B, и в стране C, но при этом получит анонимность в стране A (при доступе к ресурсам), так как страна A не владеет информацией о стране C, а страна B не дружит со страной A, как дружит со страной C.

            И, опять про безопасность — она дает нам анонимность передаваемой информации и совершаемых действий на серверах B и C в силу шифрования. Я не имел в виду в первоначальном комментарии анонимности доступа к ресурсам в стране пользователя.
            • +1
              Как анонимно купить сервер в любой стране? Подарочные карточки Visa практически нигде больше не принимают, а криптовалюту анонимно купить это тот ещё цирк, майнить самостоятельно тоже не вариант — сервер получится золотой с иридиевой инкрустацией.
              • 0
                Что вам мешает сделать международную карту в стране, отличной от страны A, и использовать ее для оплаты серверов в странах B или C?
                Ваша цель полная анонимность и мир во всем мире? Или частичная, лишь в стране проживания (А) и большинстве других стран?
                Если первое — то в чем причины?
                • 0
                  Существуют хостинги, которые можно купить на BTC. Купить биткоины можно с «белой» или «устловно-белой» (премиальной, разовой и т.п.) карты.
                  • 0
                    Что вам мешает сделать международную карту в стране, отличной от страны A, и использовать ее для оплаты серверов в странах B или C?


                    То, что в странах B или C банки чтят законы и по запросу из страны A выдадут всю информацию, которую выдать обязаны (и ни слова сверх того). Современная банковская система настолько несовместима с анонимностью, насколько это вообще было возможно сделать.
                    • 0
                      Так еще ж надо знать, в какой стране спрашивать. Согласен с тем, что это оттянет разоблачение, а не предотвратит его, но нужны веские основания. А имидж страны А подразумевает что они тушат огонь огнем, что не соотв. практике страны B или С.

                      Что вы понимаете для себя под анонимностью? Я просто не представляю для чего нужно так закапываться, окромя политической борьбы.
                      А вещи простые: литература и материалы — sock5. Запрещенное в одной стране разрешено в другой, а в 3й вообще в музее выставлено на всеобщее обозрение, значит их законов поиск и чтение не нарушает.
                      Краеугольный камень «торренты на авторский контент» — в интернете полно сервисов в разных странах мира, которые предоставляют «доступ» к тому или иному контенту. Как его «опробовать» — от sock5 и выше. И если контент хороший, за него можно заплатить.
          • +1
            Спасибо, сохранил. :)

            Возможно, интересны будут cloudatcost — они продали мне VPS в Канаде за 35$, но пожизненно.
            • +1
              Сейчас со скидкой он стоит $14.
              Жалко только отзывы про этот cloudatcost в 99% случаев сильно негативные.
              • 0
                настолько негативные что не стоят скромного единоразового платежа?
                интересуюсь, чтобы понять, действительно ли стоит пройти мимо этого предложения
                • 0
                  Читая отзывы, у меня сложилось ощущение, что аптайм у серверов процентов 80, раз в квартал они просто сносят всю инфу с дисков.
                  Вряд ли конечно всё ТАК плохо, но я уже 2 раза останавливал себя от связи с ними :)
            • +2
              Whonix

              Сравнение Whonix с самопальным торификатором

              Для полной анонимизации недостаточно запрятать трафик в Tor или VPN — надо убрать особенности настройки компьютера, операционной системы и всех программ. Разрешение экрана, разметка ЖД, графика, язык, список программ по умолчанию — всё это позволяет однозначно идентифицировать пользователя даже без знания IP. Подводных камней очень много, постоянно находят новые источники деанонимизирующих утечек то там, то тут. Наивно полагать, что можно просто взять и сделать систему анонимной. (Как и обычный Firefox нельзя сделать анонимным браузером, только лишь прописав Tor в качестве прокси — по-нормальному это сделано в Tor-браузере, разработка которого — очень серьёзное дело.)

              Разработчик Patrick Schleizer занимается разработкой Whonix c 2012 года, это его основная работа, оплачиваемая спонсорами сообщества Tor.

              PS. It's 'Tor', not 'TOR'.
              PPS. Для торрентов Tor использовать противопоказано.
              • 0
                Вы правы в том, что использование middlebox-а — это только часть системы безопасности и не гарантирует анонимности само по себе. Да, придется настроить браузер, поиграть с локалью и временем и т.п. Обязательно стоит поснифать свой же трафик и почитать заголовки и т.п.

                К сожалению, предлагаемые Вами решения (Whonix, tail, и все остальное, сделанное по концепции «работаю только на десктопе юзера, включаюсь по запросу») имеет ряд практически не решаемых проблем:

                1. Включение и выключение по запросу. Поддержание Tor ноды только в момент использования сети является угрозой безопасности. Можно сколько угодно убеждать себя «а я не буду забывать об этом и буду держать виртуалку включенной всю ночь» — увы. В частности, СОРМ тебя видит: habrahabr.ru/post/230961/.

                2. Твой провайдер видит твой Tor трафик. У нас Tor пока, конечно, не запретили, но я полагаю, что «бонусы от сгорающих через 10 минут сессий» все-таки меньше, чем то, что твой провайдер не будет сливать кому-следует что ты используешь Tor.

                Иными словами, я считаю неразумным использовать любые решения, которые генерируют Tor трафик от твоего компьютера. Следовательно, придется снова использовать vpn. Альтернатива — ставить whonix на middlebox. Это возможно, ибо фреймворк, но что делать с ssl трафиком? Проводить самому себе mitm? Не хочется.

                Собственно, все принципиальные методы, их плюсы и минусы, хорошо описаны: trac.torproject.org/projects/tor/wiki/doc/TorPlusVPN

                • 0
                  1, 2. Если хочется скрыть использование тора от провайдера, можно поставить VPN перед тором: на роутер, на host, на Whonix-Gateway или на все три возможных места. Дополнительно можно поставить VPN или VPS после Tor, чтобы скрыть использование тора от сайтов (и заодно обойти блокировки торовских нод, которые назначают некоторые ироды).

                  Виртуалка или нет, а ноутбук всё равно то и дело отключаешь и таскаешь с собой. А в стационарнике можно оставить виртуалку на ночь. В общем, это вопросы из перпендикулярных плоскостей. Если опасаетесь хитроумных атак со стороны ISP (до которых по факту даже АНБ пока далеко, не говоря о СОРМ), то можно 1) постоянно генерировать трафик, идущий через VPN параллельно с торовским трафиком (торрент, ютуб или радио подойдут) и 2) выносить браузер (и вообще активность) на внешний секретный VPS, доступ к котому осуществляется только через Tor. Эти меры сильно усложняют пассивный анализ трафика.

                  Не понял проблем с ssl-трафиком. Если использовать Whonix, как это советует его разработчик, то весь трафик из виртуалки Whonix-Workstation торифицируется в виртуалке Whonix-Gateway. SSL-трафик приложений идёт по той же схеме.

                  Важно отметить следующий момент: опасно пускать Tor-через-Tor, так как часть узлов цепочки может случайно совпасть.
                  • 0
                    > Виртуалка или нет, а ноутбук всё равно то и дело отключаешь и таскаешь с собой.

                    Вот-вот, в этом-то все и дело. Именно поэтому лучше держать тор-ноду на VPS-ке постоянно включенной.

                    > опасно пускать Tor-через-Tor, так как часть узлов цепочки может случайно совпасть.

                    Ага. И по той же причине нельзя на одном хосте запускать две копии Tor-а.
                    • +1
                      Нет и нет.

                      1. Допустим, запустили мы торовскую ноду на VPS. Во-первых, после этого нам надо как-то анонимно подключиться к этой ноде. Рекурсия. (Чтобы купить и настроить этот самый VPS, нам уже нужна анонимность в сети (не в скрытосети, а в clearnet, поэтому I2P не подойдёт), а Tor — единственный подходящий источник анонимности в сети.)

                      Во-вторых, в этом случае нам придётся доверять провайдеру VPS, так как он видит весь ваш трафик до его входа в тор. Трём случайно выбранным нодам (из которых входная частично зафиксирована, а две другие постоянно меняются) я доверяю больше, чем своему провайдеру и провайдеру VPS (и провайдеру VPN, если его воткнули посередине) — все три фиксированы и имеют возможность собрать обо мне намного больше информации, чем торовские ноды (хотя бы потому, что всем им я плачу). Короче говоря, нельзя доверять тору, запущенному не на localhost.

                      2. На одном хосте можно запускать сколько угодно торов, но не ставить один тор за другой. Кстати, тор плохо масштабируется на многопроцессорных системах, поэтому операторы торовских нод частенько запускают две ноды на одном сервере, чтобы более эффективно расходовать ресурсы.
                      • 0
                        Зачем анонимно подключаться к торовской ноде? Если она локально, и на неё вышли, у вас получается та-же ситуация, что и при ноде, вынесенной на знающий вас vps. Доверять им, кажется, можно одинаково. А внешний vps вроде дает усложнение выхода на ноду за счет её круглосуточности?
                        • +1
                          Если наблюдатели выйдут на торовскую ноду на VPS, то они смогут просматривать весь ваш чистый трафик (перехватывая его на самой ноде до входа в тор), а вы об этом даже не узнаете. А выйти на ноду и связать её с вами им не составит труда, так как вы собираетесь подключаться к ноде неанонимно.

                          Если наблюдатели выйдут на локальную торовскую ноду (то есть на вас), то без вашего ведома они трафик посмотреть всё равно не смогут, так как доступа к ноде у них не будет (если даже они произведут обыск и отберут компьютеры, то историю прошлого серфинга не получат, а будущий серфинг вы уже будете пускать по другим каналам). Кроме того, физически они до вас вряд ли доберутся, так как у АНБ в РФ нет таких полномочий, а «добраться» до тор-клиента только АНБ и умеет (и то это под вопросом).

                          Какой толк от круглосуточности работы тор-клиента? Допустим вы используете тор для доступа к почте. Тогда по логам почтовика можно составить представление о вашем часовом поясе, независимо от того, работает тор-клиент по ночам или нет. Кроме того, в тор-клиенте меняются цепочки каждые 10 минут, значит за ночь они сменятся много-много раз и эффект был бы таким же, как если бы вы выключили ноду, а утром её включили.

                          В блоге компании mail.ru был предложен способ отлова клиентов тора и других анонимизаторов при сотрудничестве СОРМ и сайта (например, mail.ru) и условии нахождения человека в РФ (за СОРМ). Этот способ предположительно работает даже тогда, когда вы перед тором поставите VPN или VPS (или даже поставите Tor на VPS, но браузер останется локально). Собственно, способ обхода такой атаки — вынести браузер за пределы РФ, чтобы нарушить корреляцию отдачи информации сайтом (за СОРМ) и получения её вами (за СОРМ). Поэтому если уж держать Tor на VPS, то надо держать там и браузер, а то и всё графическую сессию и файлы, а цепляться к этому VPS через Tor, запущенный локально. Вырисовывается такая схема: пользователь — тор — lynx на VPS — тор — «mail.ru». Можно дополнительно обмазать оба тора VPNами до и после, хотя это спорный момент, улучшит ли это анонимность.
                • 0
                  Теперь про торренты.

                  Описанная методика (Tor VPN middlebox) обеспечивает удовлетворительную анонимность при скачке торрентов

                  И вот почему. В приведенной Вами статье описываются три атаки, причем вторая неприменима без первой. Суть первой — цитируя —

                  Tor is _anonymously_ sending your IP address to the tracker or peer.

                  Иными словами, клиент определяет твой реальный внешний IP и сливает его по анонимному каналу. В случае с мидлбоксом единственный «внешний реальный IP», который определит клиент — это адрес exit-ноды, что и является ожидаемым поведением.

                  Остаются две проблемы при использовании торрентов.

                  1. Если ты ОДНОВРЕМЕННО качаешь торренты и пишешь е-мейл — то можно связать емейл и торрент.
                  2. Торренты перегружают Tor сеть.

                  Первая проблема в целом обходится (каналами, ага. смотри ту же статью). Так что существенна только вторая, но это уже не про безопасность, а про «не быть мудаком».

                  Да, боюсь я наступил на больную мозоль, так что придется писать еще один дисклеймер.

                  Я не призываю качать торренты при помощи Tor! Из того, что это безопасно НЕ СЛЕДУЕТ, что можно так делать. Загружая торренты из Tor-а вы вредите сети. Я привел это исключительно как пример существенной проблемы безопасности, которая решается при использовании middlebox-а.
                  • 0
                    Продолжая про торренты.

                    Может возникнуть опасение, что разработчики торрент-клиента настолько бездарны, что определят IP не с той карточки, с которой реально работает сеть, а с той, с которой сети нет, а есть только туннель до vpn-ки.

                    Потом торрент-клиент какой-то магией поймет, какой ip-шник в traceroute является твоим внешним, и вот тут-то он его и сольет.

                    Лично я воспринимаю такую возможность как мифическую, поскольку это требует предположения, что «торрент-клиенты писали враги специально, чтобы анонимизировать пользователей».

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

                    Повторяю, это только часть академической дискуссии за безопасность. Качать торренты через Tor плохо, это вредит сети.
                    • 0
                      Если всё правильно настроить, то torrent через тор работает анонимно. Если торрент-клиент не в виртуалке, то опасность случайных утечек есть, а если в виртуалке, то это и будет стандартный Whonix с установленным Transmission. Но даже в таком случае стоит иметь в виду, что разные раздачи будут слинкованы друг с другом, так как значение peer_id во многих случаях уникально. Чтобы избежать линкования раздач, надо откатывать виртуалку к девственному состоянию перед каждым скачиванием (аналог кнопки New Identity в Tor Browser).
                • –1
                  Ок, логи у хостера все-равно будут.
                  • +1
                    Есть способ завести vpn на своём сервере пороще github.com/jpetazzo/dockvpn
                    • 0
                      Если кто-то убежден в возможности «Анонимизации всего», скорей всего он просто что-то не знает.

                      Например, ваша конфигурация легко деанонимизируется при открытии документа, содержащего картинку с \\1.2.3.4\share. Причем в вашей конфигурации деанонимизирован будет и IP адрес, т.к. на 1.2.3.4 полетит NBNAME-запрос через UDP, который вы не перенаправляете и имена залогиненного пользователя и компьютера.

                      В общем-то не случайно к Tor дают Tor browser, в котором нет части функционала и лишних плагинов.Можно обеспечить анонимность какой-то определенной операции, например просмотра сайта.
                      Обеспечить анонимность при использовании произвольных приложений работающих на компьютере — задача невыполнимая.
                      • 0
                        Согласен с вашим комментарием за вычетом последней фразы:
                        Обеспечить анонимность при использовании произвольных приложений работающих на компьютере — задача невыполнимая.
                        Эта задача решается в проекте Whonix.

                        Whonix-Gateway гарантирует отсутствие утечек IP-адреса (необходимое условие анонимности). Если поставить за него произвольную виртуалку (с момента установки системы), то IP-адрес не утечёт, но есть риск, что любые действия, совершенные в этой системе, могут быть слинкованы между собой (такая ситуация называется псевдонимностью, а не анонимностью).

                        Но если поставить Whonix-Workstation, то действия разных приложений не будут слинкованы (за этим проследил разработчик Whonix). Кроме того, разные экземпляры Whonix-Workstation очень похожи, поэтому ваши действия в Whonix-Workstation с точки зрения следилок будут сливаться с действиями других пользователей Whonix-Workstation (такой же принцип работает в Tor Browser: у всех пользователей один User Agent, один часовой пояс, разрешение экрана выбирается из небольшого предопределенного набора и т.п.).
                        • 0
                          > Если кто-то убежден в возможности «Анонимизации всего», скорей всего он просто что-то не знает.

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

                          > Например, ваша конфигурация легко деанонимизируется при открытии документа, содержащего картинку с \\1.2.3.4\share. Причем в вашей конфигурации деанонимизирован будет и IP адрес, т.к. на 1.2.3.4 полетит NBNAME-запрос через UDP, который вы не перенаправляете и имена залогиненного пользователя и компьютера.

                          Нет. UDP запрос просто не пройдет дальше vpn-сервера и сдохнет там. Разумеется, если не забыть очистить iptables после игр с «честным» редиректом в clearnet. Сейчас внесу в статью соответствующую правку.
                          • 0
                            > С этим трудно спорить. Но я, тем не менее, заявляю, что обеспечиваю прозрачную анонимизацию всего трафика.

                            Я говорю про tor, который вы используете некорректно и не по назначению.

                            Анонимизацию вы не обеспечиваете. У вас DNS-запрос летит по открытой сети на локальный DNS. С локального DNS летит на сервер, который хостит зону. Прилетает DNS-запрос из вашей «родной» сети, после чего прилетает коннект через тор, который тривиально сопоставляется. Т.е. tor получается вообще бесполезен.
                            • 0
                              DNS запрос летит по vpn на 10.8.1.1, а дальше переводится на tor-овский dns. Собственно говоря, как и все остальное. Какой именно «сервер, который хостит зону» Вы имеете в виду!? Или вы о том, что нельзя доверять своему хостингу?
                        • 0
                          Пользуюсь vds6.net, ЕС. 4 доллара в месяц, но в последнее время у них «мигает» сеть. Подскажите, пожалуйста, альтернативу по такой же цене с 512 RAM, тоже в ЕС. Спасибо!
                          • 0
                            DO в Нидерландах за $5? На бакс дороже, тоже в ЕС.
                            • 0
                              Не хочется копипастить просьбу. А про рекламу мы все поняли уже. :)
                              • 0
                                Я выполнил просьбу и посоветовал, а что бы не было рекламы не давал ссылку.
                                Так же могу посоветовать kimsufi с их железными серверами на €5 в месяц.
                          • 0
                            iptables -t nat -A PREROUTING -i $_int_if -p udp --dport 53 -j REDIRECT --to-ports 53
                            iptables -t nat -A PREROUTING -i $_int_if -p tcp --syn -j REDIRECT --to-ports $_trans_port
                            


                            А почему заварачивается не весь udp трафик, а только DNS?
                            • 0
                              А действительно, почему? Я поиграю с udp.
                            • 0
                              С введением свеженьких инициатив, подобной вот этой Минкультовской (DPI инкл.) подобные кейсы и сборки будут набирать всё бОльшую популярность.
                              Спасибо российской «культуре» за развитие и совершенствование технологий коммуникаций!
                              • 0
                                Чисто из параноидальных соображений имеет смысл выбирать хостинг не в США. На всякий случай.
                                • +1
                                  Вы напрасно оставили закрытый ключ вашего собственного СА лежать на сервере, смотрящем в интернет, рядом с сертификатами и ключами других сущностей.
                                  Наверняка будет безопаснее, если ключ вашего СА (ваших, если вы настаиваете на отдельном СА для каждого сервера) не покинет ваших рук. И ключи клиента и сервера будут существовать только на клиенте и сервере соответственно. Процедура при этом усложнится, конечно.
                                  • 0
                                    Да, весьма годная методика. Спасибо.

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.