Загрузка...

Создание TOR роутера с помощью Raspberry (малинки) / с поддержкой ***

Тема в разделе Безопасность создана пользователем Aivery 28 мар 2020. 1769 просмотров

  1. Aivery
    Aivery Автор темы 28 мар 2020 47 16 окт 2019
    [IMG]

    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀В этой статье вы узнаете один из способов создания переносного Tor *** роутера.

    С помощью этого устройства вы сможете подключать любые Комьютеры/смартфоны, заворачивать трафик сначала в ***, затем в Tor, обфусцировать с помощью obfs-proxy и отправлять на удаленный ***-сервер.

    1) Любой одноплатный компьютер. В моем случае это Raspberry Pi модель B+.
    2) ОС Raspbian.
    3) Micro SD.
    4) Картридер.
    5) Беспроводной адаптер или переходник ethernet to usb.
    6) Удаленный Open*** сервер.
    1. eth-eth
    [IMG]

    2. wlan-eth
    [IMG]

    3. wlan-wlan
    [IMG]

    4. eth-wlan
    [IMG]
    1. SBC — одноплатный компьютер;
    2. CR — устройство, через которое осуществляется доступ в Интернет. Устройство не обязательно может быть подключено напрямую в порт SBC;
    3. PC — какой-либо компьютер (или мобильное устройство) подключаемое к SBC;
    4. ***-server — целевой *** сервер;
    5. Входной интерфейс — физический интерфейс, куда поступает клиентский трафик;
    6. Выходной интерфейс — физический интерфейс, с которого трафик уходит в Интернет.
    В статье рассматривается случай, когда параметры для линка в интернет приходят по DHCP или задаются статически. Для случаев с получением параметров для линка по L2TP, PPPoE или иных ситуаций настройка будет отличаться. Также будем считать, что для удобной работы ***-сервер выступает как DNS-relay.
    На официальном сайте Rasbian присутствуют очень подробные инструкции для записи образа для Linux, Mac OS и Windows, поэтому я не буду засорять статью лишним. Использовать карту не менее 16гб.

    С подключением к плате после записи образа и включения может быть несколько вариантов:
    1. Если у вас есть специальный экран/монитор/телевизор c поддержкой hdmi, то достаточно его подключить по hdmi;
    2. Если экрана нет, но параметры на физический интерфейс приходят по DHCP, то можно просканировать сеть nmap-ом с другого компьютера и подключиться по ssh. Пользователь pi, пароль raspberry;
    3. Если нет DHCP, то можно отредактировать файл /etc/network/interfaces и прописать туда адреса вручную.
    Для того, чтобы трафик пересылался с одного интерфейса на другой, необходимо, чтобы был включен соответствующий параметр ядра Linux. Это можно сделать с помощью команды:

    sysctl -w net.ipv4.ip_forward=1
    или
    echo 1 > /proc/sys/net/ipv4/ip_forward

    Для проверки можно использовать команду: cat /proc/sys/net/ipv4/ip_forward
    Она должна вернуть «1».
    Для того, чтобы упростить маршрутизацию трафика, включим маскардинг для туннельного интерфейса с помощью iptables:

    iptables -t nat -A POSTROUTING -s 10.5.5.0/24 -o tun0 -j MASQUERADE

    Вместо этого можно было бы прописать статические маршруты и статический адрес для клиента. Или использовать ccd.
    Обновить репозитории и получить обновления:

    sudo apt-get update
    sudo apt-get upgrade

    Установка из репозиториев:

    sudo apt-get install python2.7 python-pip python-dev build-essential tor open*** obfs-proxy

    Если вы хотите схему с точкой доступа, то помимо этого установим hostapd и DHCP-cервер:

    sudo apt-get install hostapd isc-dhcp-server

    Вместо isc-dhcp-server вполне может быть использован любой другой. В репозиториях часто содержаться не самые последние версии, поэтому можно собрать пакеты из исходников, но если вам нужно получить быстрое решение, то подойдет и установка из репозитория.
    Схема eth-eth:
    Данный вариант является самым простым. На физическом интерфейсе Raspberry Pi, к которому подключается ПК, достаточно настроить статический адрес. На ПК также задать параметры вручную. Также можно настроить isc-dhcp-server, чтобы он выдавал параметры. На клиентской машине на Linux для первоначальной настройки достаточно выполнить команды:

    ip a add 10.5.5.2/24 dev <интерфейс>
    ip route add default gw 10.5.5.1

    А в файл /etc/resolv.conf добавить запись:

    nameserver 10.8.0.1

    Схема wlan-eth:
    В данной схеме входным интерфейсом будет беспроводной интерфейс, работающий в режиме точки доступа. Вместо режима полноценной точки доступа можно настроить режим Ad-hoc.

    Для организации wi-fi точки доступа с DHCP я использовал связку hostapd и isc-dhcp-server, но не обязательно использовать именно эту связку. На хабре есть несколько очень подробных статей по настройке различных вариантов в Linux. Ссылки я привел в источниках.

    Привожу пример своих настроек:

    /etc/hostapd/hostapd.conf

    interface=wlan0 #Интерфейс
    driver=rtl871xdrv #Используемый драйвер
    ssid=AP #Название точки доступа
    hw_mode=g #Стандарт работы точки доступа
    channel=6 #Частотный диапазон
    macaddr_acl=0 #Не использовать списки доступа
    auth_algs=1 #Использовать WPA
    wpa=2 #Версия протокола
    wpa_passphrase=raspberry #Пароль для подключения
    wpa_key_mgmt=WPA-PSK #Метод аутентификации
    wpa_pairwise=TKIP #Алгоритмы работы с ключами и шифрованием
    rsn_pairwise=CCMP

    /etc/dhcp/dhcpd.conf

    #Задание подсети для которой будет работать данный DHCP сервер
    subnet 10.5.5.0 netmask 255.255.255.0 {
    range 10.5.5.2 10.5.5.4; #Диапазон адресов
    option broadcast-address 10.5.5.255; #Широковещательный адрес
    option routers 10.5.5.1; #Шлюз по умолчанию
    default-lease-time 600; #Стандартное удержания адреса
    max-lease-time 7200; #Максимальное время удерживания адреса
    option domain-name "local"; #Доменное имя
    option domain-name-servers 10.8.0.1;} #Список DNS-серверов.

    Сразу стоит оговориться, что у некоторых могут возникнуть проблемы с драйверами и работой беспроводной карточки в режиме точки доступа. Лучше поинтересоваться такими вещами заранее. У меня была такая проблема для одной из моих карт при работе вместе с hostapd из репозитория. Проблема решилась патчем hostapd.

    Схема wlan-wlan:
    Часть с настройкой входного интерфейса ничем не отличается от предыдущей схемы. Выходной интерфейс необходимо подключить к точке доступа. Пример подключения с использованием утилиты nmcli:

    nmcli d wifi connect <SSID точки> password <пароль> iface <интерфейс>

    Схема eth-wlan:
    Настройка входного интерфейса происходит как в схеме eth-eth, выходного — как в wlan-wlan.
    Для маскировки Tor трафика будем использовать obfsproxy.

    Привожу пример настройки Tor:

    /etc/tor/torrc

    SocksPort 9050
    RunAsDaemon 1
    VirtualAddrNetwork 172.16.0.0/12
    DNSPort 53
    DNSListenAddress 127.0.0.1
    AutomapHostsOnResolve 1
    BridgeRelay 1
    Exitpolicy reject *:*
    ServerTransportPlugin obfs3 exec /usr/bin/obfsproxy managed
    obfs3 <адрес1:порт1> <ключ1>
    obfs3 <адрес2:порт2> <ключ2>
    obfs3 <адрес3:порт3> <ключ3>

    Данные для подключения к серверам obfsproxy можно взять здесь.
    Для организации *** будем использовать Open*** через TCP и в режиме L3 (tap-интерфейс). Используется TCP, поскольку Tor работает только TCP-трафиком. В сам же ***-туннель можно пускать любой трафик. Для того, чтобы направить *** трафик в Tor, будем «проксировать» весь ***-трафик через Tor. Open*** поддерживает такую возможность.

    Привожу пример настройки клиентской части Open*** с подробными комментариями:

    /etc/open***/client.conf

    сlient #Имя клиента
    dev tun #Использовать L3-интерфейс
    proto tcp #Задать TCP транспортным протоколом
    socks-proxy 127.0.0.1 9050 #Использовать Tor как Socks-proxy.
    socks-proxy-retry #Пытаться подключаться многократно
    # Внешний IP, на или за которым находится сервер Open*** и порт (на сервере или на сетевом устройстве, на котором настроен проброс портов до сервера)
    remote 1.1.1.1 443 #Порт специально выбран таким образом, чтобы он совпадал с портом, используемым протоколом https.
    resolv-retry infinite #Подключаться до тех пор, пока подключение не будет осуществлено.
    ca /etc/open***/keys/ca.crt #Сертификат сервера
    cert /etc/open***/keys/client.crt #Сертификат клиента
    key /etc/open***/keys/client.key #Приватный ключ клиента
    tls-client #Использовать протокол TLS
    tls-auth /etc/open***/keys/ta.key 1 #Ключ для аутентификации в TLS
    auth SHA1 #Задать SHA1 как алгоритм хеширования
    cipher AES-128-CBC #Задать основным алгоритмом шифрования AES с длиной ключа в 128 бит в режиме сцепления блоков.

    По настройке сервера есть достаточно много инструкцией в интернете. Ссылки я привел в «источниках» в конце статьи. Ключевым в настройке является совпадение параметров и наличие в конфиге сервера строчки «push «redirect-gateway def»». Она необходима, чтобы на клиенте установился маршрут по-умолчанию для проходящего трафика, который указывает на *** сервер.
    Потенциальные подводные камни:
    1. Синхронизация времени. Поскольку tor выполняет криптооперации с проверкой временных меток, то время должно быть синхронизировано. К сожалению, время нужно будет синхронизировать каждый раз после выключения платы.
    2. Размер mtu. DF-бит в отправляемых пакетах может привести к тому, что трафик будет «резаться», если где-то по пути запрещена фрагментация пакетов, а значение mtu меньше вашего.
    3. Использование *** throught Tor и obfsproxy не панацея от всего.
     
  2. crxckofficial
    crxckofficial 28 мар 2020 Ищу спонса на розыгрыши/профиль 1633 3 май 2019
    Ты под чем тему создавал?
     
    1. Aivery Автор темы
  3. EzhikSonic
    EzhikSonic 28 мар 2020 так сближает страх смерти... 575 22 дек 2019
    И всё равно найдут
     
    1. Aivery Автор темы
      EzhikSonic, полного анани...кхм анонизма нет никогда. :peka:
  4. SAPoj
    SAPoj 5 апр 2020 нет войне 37 24 окт 2018
    пластилин с гидры буду брать обязательно воспользуюсь . спасибо
     
    1. true
      SAPoj, а нахуй тебе с этим заморачиваться если можно просто тор браузер скачать?
  5. ScroogeMcDuq
    ScroogeMcDuq 28 апр 2020 Заблокирован(а) 7 7 апр 2020
    Малину под ТОР роутер? Бесполезно...
    Лучше Малину под умный дом пустить, написать на RPI.GPIO управление девайсами, бекенд на Django и радоваться жизни
     
  6. Hagasaki
    Hagasaki 18 июл 2020 Наггетсы 63 26 апр 2020
    тебя тема под чем создавала?
     
    1. Aivery Автор темы
      Hagasaki, коммент под чем писал?
  7. TrustWallet
    TrustWallet 20 июл 2020 2091 7 мар 2019
    Тема походу из разряда "Ломаем пентагон после крушения на необитаемом острове на компьютере, собранном из остатков самолета"
     
    1. Aivery Автор темы
Top
Загрузка...