Анонимный роутер на Raspberry PI (TOR+SOCKS)

В далекой далекой галактике… хотя нет не из этой оперы данная статья,
Изначально я хотел написать статью как это все поднимать, расписывать каждый конфиг, но я понял что это убьет уж очень много времени.
Проще будет вам показать что получилось, продемонстрировать инсталяционный скрипт и конфиги.

И так перейдем к описанию.
Платформой нашего роутера выбран Raspberri PI 3
На текущий момент всё собрано на последней версии raspbian

OS : Debian Strech 9
RASPBIAN STRETCH LITE
Version:November 2017
Release date:2017-11-29
Kernel version:4.9

Оригинальная ОС доступна для загрузки вот тут ТЫК

Роутер умеет подбирать интернет через Ethernet или USB 3G модем воткнутый в него.
Дальше у роутера есть 3 режима работы.

TOR - (Работает только через тор)
TOR + SOCKS (ТОР а сверху тора на выходе используется обычный socks5)
TOR + SOCKS = AUNTH (ТОР а сверху тора на выходе используется обычный socks5 с авторизацией)
Все это добро раздается по WIFI.

Вы подключаетесь по WIFI к нашему роутеру

SSID : AP-1
Password : 12345678

и без всяких дополнительных настроек получаете интернет через ТОР или ТОР + Сокс, проксифаер и другие вещи не нужны, все делается на роутере.
Все DNS запросы идут через ТОР с помощью демона dns_tcp_proxy.

Что на самом роутере?

3proxy - в качестве сокс демонна в режиме транспарент + parrent
dns_proxy - для туннелирования dns запросов в тор.
hostapd - для раздачи wifi
dnsmasq - для раздачи IP адресов wifi клиентам.
python3 - для работы написанного мной webmanager интерфейса.
тор - сами знаете для чего.
wvdial - для работы с 3G модемом.

Я не очень программист, у меня ушло 2 дня на создание интерфейса роутера на Python и получилось в результате вот это.
Скриншоты интерфейса :

Полный образ Raspberri PI3 со всем установленным и полностью рабочим вариантом можете скачать тут.

https://nova.ws/dl/release/pi_tor_socks/pi_tor_socks.img

Или с зеркала

https://mega.nz/#!itMHhIIb!eyg19NQemWFtCvX8HZsWOi-ra-KphiUN4qHYmPggUk0

Образ полностью готов к работе, записываем на SD карту с помощью etcher, и вставляем в малинку.
Образ слегка модифицирован, удалена запись pi вход только под root, SSH уже включен.
Данные для подключения по SSH

Username : root
Pass : 123456

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

raspi-config

И идем вот в эти менюшки

затем в

И соглашаемся на увеличение пространства.

Вариант для тех кто хочет все собрать сам, на своей малиннке с чистым debian stretch.

Скрипт инсталятор :

https://nova.ws/dl/release/pi_tor_socks/install.sh

Небольшое описание процесса.

Скачиваем debian stretch
записываем на SD карту, я рекомендую для записи ethcer взять можно тут : https://etcher.io/
после того как запись завершена не забываем включить ссш.
для этого снова подключаем SD карту в ноут и создаем на бутовой партиции файлик ssh без расширения txt итд.
безопасно извлекаем карту и вставляем в малинку.
когда загрузится малинка логинимся на нее с помощью SSH

Username : pi
Password : raspberry

Затем набираем sudo -s (переходим в режим root)
И скачиваем мой инсталятор

curl -O https://nova.ws/dl/release/pi_tor_socks/install.sh
Когда процесс загрузки будет завершен, набираем
sh install.sh

Дальше мой скрипт сделает все сам.
В процессе установки могут возникнуть дополнительные вопросы, вот ответы на них.

Админка роутера доступна по адресу : http//192.168.22.1:5000 (если вы к ней подключаетесь по wifi)

На текущий момент все протестировано, перезаписано не один раз, и работает вроде как корректно, как мог так и протестировал….

P>S
Возможно будет работать и на других устройствах, Orange PI, BananaPI итд.. тут я не знаю.
Если можете установить дистрибутив и проверить будет замечательно.
В теории если на ваше устройство можно поставить дистрибутив raspbian lite указанный выше по ссылке, то все должно работать.

Готовые конфиги можно качнуть вот тут :

https://nova.ws/dl/release/pi_tor_socks/pi_tor_socks_conf.tar.gz

Вебморду на питоне отдельно можно качнуть тут

https://nova.ws/dl/release/pi_tor_socks/pi_tor_socks_web.tar.gz

P>P>S
3G демон запущен по дефолту, у меня MF180 И MF667 заводятся нормально.
ЧТо бы не менять порт в конфиге 3G в интерфейсе малинки.
Втыкаем вот в этот порт.

Сорцы на гихабе будут позже.

  • Alex8

    Спасибо за статью, Нова а не подскажешь как вместо прокси тунели можно было ставить свои?

    • Nova

      не за что ;)
      SSH туннели тут никак не прикрутить, 3proxy с ними не работает.
      ну и придется переписывать морду.

  • Kolina

    Огромное спасибо! Возникло 2 вопроса:

    1) обычная скорость 50-70мб, после тора до 1мб, это норма?

    2) Ставил с готовой сборки, при попытке изменить эти данные (имя и пас сети) — пропадает вовсе сеть и вайфай не обнаружить.
    SSID : AP-1
    Password : 12345678

    • Nova

      1) проседание скорости при использовании тора это нормально, у некоторых иногда бывает нет и мегабита.
      В целом это все можно по чуть чуть исправлять например попробовать использовать Bridges или устанавливать определенные ExitNode но это сугубо индивидуально уже.

      2) символ = не стираете надеюсь?
      я проверил образ и не вижу проблемы, меняется без проблем.
      Попробуйте отредактировать файл hostapd вручную.
      /etc/hostapd/hostapd.conf
      И укажите в нем новые настройки. после перезапустите малинку.

      • Kolina

        1)У меня стабильно 0.2мб, было бы здорово как-то автоматически отбирать ноды с скоростью выше определенной или какое-то подобное решение
        2)Не стирал) но вот через hostapd.conf поменял и все работает, Спасибо!

        • Nova

          1) это вам создателям ТОР лучше это предложить )
          я тут хз )

          2) нзч )

  • Anton

    А можно мини мануал, как в командной добавить ВПН еще? с существующим файлом конфига

    • Nova

      apt-get install openvpn
      потом идем в /etc/openvpn/ и создаем файлик client.conf
      пихаем туда ваш конфиг.
      добавляем в автозагрузку и запускаем
      systemctl enable [email protected]
      systemctl start [email protected]

      • Sam

        Подскажите пожалуйста.
        Openvpn работает корректно, к серверу подключается, но трафик идет через тор все равно.

        • Nova

          Ну а как он должен идти ?)
          Все соединения Wifi заворачиваются же в TOR правилами фаервола.
          у вас сейчас просто поверх вашего интернета VPN потом ТОР. и в тор уже все заворачивается.
          хотите чтоб не заворачивалось в ТОР убирайте правила редиректа.

          • Sam

            Окей, спасибо))
            Не подскажите как проверить ip до тора какой (проверить VPN встал или нет), не меняя правила редиректа?

          • Nova

            traceroute или tracepath вам поможет в этом вопросе.
            посмотрите трассу как идет там будет VPN ну или должен быть.

  • Williams

    Используя такую связку, пользуясь только ТОР — на ноутбуке отказывается работать ВПН.
    В то время, как с обычным вай-фай таких проблем нет.
    Есть какое-то решение?

    • Nova

      Если VPN использует udp то работать не будет.
      только tcp конфиги.

  • Sergej

    Отличная сборка,спасибо!
    а какая домашняя папка тут?
    скачал файл, нужно найти его через командную строку, в малинке в граф интерфейсом всегда делал так
    wget качаем файл
    cd /Downloads — попадаем в папку где он лежит
    а тут как-то иначе

    • Nova

      cd ~
      wget качает туда где вы его и запустили, если не указано иное.

      • sergej

        Спасибо!
        Подскажите еще пожалуйста, встроенный wifi в rasberry не совсем подходит, есть у меня usb netis-wf2190.Так вот драйвера вроде как удалось поставить, но как именно через него пустить все ? (сейчас вафлю раздает с встроенного)

        • Nova

          хз. это сами уже ;)

          • Sergej

            Да вот уже 5 дней в поисках решения проблемы и безуспешно :(
            уже и не знал куда деваться с этим вопросом, отписал тут

          • UK

            Так ты когда вставляешь свисток в raspberry там должен появится новый интерфейс wlan1. Вот на него и перестраивай все конфиги

  • Антонио

    подскажите пожалуйста, какой командой перезапустить ТОР можно ? Чтобы он подобрал новые ноды. И будит ли при этом обрыв wifi соединения?

    • Nova

      service tor restart
      нет.