TOR роутер на базе Raspberry с поддержкой VPN.

S

SSHMAN

Original poster
dde81dcf512662fe20510.jpg

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

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

Исходные данные:

1) Одноплатный компьютер. В моем случае это Raspberry Pi модель B+;

2) ОС Raspbian. Для данной статьи использовалась Raspbian Jessie, билд от 18-03-2016;

3) Карта памяти (Micro SD);

4) Картридер;

5) Беспроводной адаптер или переходник ethernet to usb;

6) Удаленный OpenVPN сервер.

Схемы подключения:

1) eth-eth

66686fa1686046630fb74.png

2) wlan-eth

2ebfb2e00f8bae4e6604d.png

3) wlan-wlan

a92f8ee12e41ff00e4126.png

4) eth-wlan

9d4e8e448d8761f3a18f9.png

Обозначения:

1. SBC
— одноплатный компьютер;

2. CR — устройство, через которое осуществляется доступ в Интернет. Устройство не обязательно может быть подключено напрямую в порт SBC;

3. PC — какой-либо компьютер (или мобильное устройство) подключаемое к SBC;

4. VPN-server — целевой VPN сервер;

5. Входной интерфейс — физический интерфейс, куда поступает клиентский трафик;

6. Выходной интерфейс — физический интерфейс, с которого трафик уходит в Интернет.


Допущения:


В статье рассматривается случай, когда параметры для линка в интернет приходят по DHCP или задаются статически. Для случаев с получением параметров для линка по L2TP, PPPoE или иных ситуаций настройка будет отличаться. Также будем считать, что для удобной работы VPN-сервер выступает как DNS-relay.


Установка системы и подключение.
На официальном

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

Rasbian присутствуют очень подробные инструкции для записи образа для Linux, Mac OS и Windows, поэтому я не буду описывать процесс записи образа ОС на карту памяти, чтобы не загромождать статью. По своим наблюдением могу сказать, что лучше брать карту от 16 Гб, чтобы избежать в будущем проблем с нехваткой памяти.

[ad name=»Responbl»]

С подключением к плате после записи образа и включения может быть несколько вариантов:

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:

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 openvpn 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.

[ad name=»Responbl»]

Для организации 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.

[ad name=»Responbl»]


Tor + obfsproxy.
Для маскировки Tor трафика будем использовать

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

.

Привожу пример настройки 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 можно взять

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

.


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

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

/etc/openvpn/client.conf

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

По настройке сервера есть достаточно много инструкцией в интернете. Ссылки я привел в «источниках» в конце статьи. Ключевым в настройке является совпадение параметров и наличие в конфиге сервера строчки «push «redirect-gateway def»». Она необходима, чтобы на клиенте установился маршрут по-умолчанию для проходящего трафика, который указывает на VPN сервер.


Тестирование.
Для теста правильности работы пустим ping от подключенного ПК до tun-интерфейса VPN-сервера, будем снимать трафик с помощью tcpdump и анализировать в Wireshark для наглядности.

1) ICMP-запрос приходит на входной интерфейс Raspberry Pi.

c153158bc439d955abecd.png

Стоит обратить внимание на идентификаторы BE, LE и временную метку. Далее они нужны будут для того, чтобы опознать ICMP-запрос на стороне сервера.

2) ICMP-пакет прошёл процедуру обработки в OpenVPN и направился на порт 9050, который «слушается» Tor. Снимок трафика происходит на loopback интерфейсе Raspberry Pi.

02c9f40794523e8a0e9b9.png

3) Пакет выходит из Raspberry Pi и направляется на один из узлов сети Tor с серверной частью obfsproxy:

95f14f9f4c1eb98f8c0ff.png

4) И снимок трафика уже на туннельном интерфейсе VPN-сервера. Тут же можно заметить, что сервер послал ответ.

4aac74f79178c26c04f6b.png

Идентификаторы BE, LE и временная метка совпадают с теми, которые были в отправленном пакете.

5) На этом скриншоте представлен пакет, выходящий с VPN-сервера, в котором содержиться ICMP-reply.

44cee5f8768767583914e.png

Также я произвел тестирование пропускной способности этого решения с помощью iperf для TCP и UDP трафика до сервера. Тестирование проводилось с использованием Raspberry Pi model B+ и ОС Raspbian в домашней сети, так что цифры для других одноплатных компьютеров с другими ОС или другой сетевой средой могут отличаться.

Результаты:

343d8f21e4d35d823b7a4.png

31c17000d7b8a4e346303.png


Заключение.
Потенциальные подводные камни:

1) Синхронизация времени. Поскольку tor выполняет криптооперации с проверкой временных меток, то время должно быть синхронизировано. К сожалению, время нужно будет синхронизировать каждый раз после выключения платы.

2) Размер mtu. DF-бит в отправляемых пакетах может привести к тому, что трафик будет «резаться», если где-то по пути запрещена фрагментация пакетов, а значение mtu меньше вашего.

3) Использование VPN throught Tor и obfsproxy не панацея от всего.

Если вы найдете или уже сталкивались с каким-то иными проблемами, то пиши в комментариях — я добавлю в статью.
 

ev0117434

Pro Member
Сообщения
63
Реакции
23
Посетить сайт
Установка из репозиториев:

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

В этом моменте когда я пишу выше написанную команду выдает ошибку что пакет obsf-proxy не найден
Если убрать все окей
Помоги)
 
Название темы
Автор Заголовок Раздел Ответы Дата
Emilio_Gaviriya Статья Сеть Tor: Возможности и ограничения. Анонимность и приватность 0
Emilio_Gaviriya Статья Деанонимизация пользователей Tor через файлы-приманки. Анонимность и приватность 1
sunhost Продам Абузоустойчивые BulletProof VPS/VDS 10 GB/s с защитой. WAF и TOR защита. Сайты/Хостинг/Сервера 0
Support81 Разработчики Tor Project удалили из сети ряд узлов из-за коммерческой и рискованной деятельности Новости в сети 0
Support81 Вот это поворот: Microsoft Defender стал помечать Tor Browser как вредоносное ПО Новости в сети 2
Support81 Победителей не будет: авторы Tor вступают в неравный бой с DDoS-атаками Новости в сети 0
DOMINUS Хакеры атакуют пользователей криптовалют через серверы в сети Tor Новости в сети 0
Admin Интересно Создание своего Shadowsocks + v2ray + tor [Часть 2] Настройка системы для работы 5
S Не работает интернет без vpn или tor Вопросы и интересы 2
S Проверено Надежный VPN без логов: Premium (Single VPN), Double (VPN+VPN), Onion (VPN+TOR) | SecretsLine Дедики/VPN/соксы/ssh 0
M Анонимный клиент BitTorrent через Tor SSH / дедики / Vpn / Proxy / Socks 1
B Спецслужбы могут легко вычислить твое реальное имя через Tor Полезные статьи 0
M Проекты ФСБ: от деанонимизации пользователей браузера Tor до исследования уязвимости торрентов Новости в сети 2
A Слабые места TOR Анонимность и приватность 0
АнАлЬнАя ЧуПаКаБрА INLINE San wells Brute/Checker | TOR | Проекты Private Keeper 0
T Как пустить весь интернет трафик через сеть Tor?(для тех кто не знал) Полезные статьи 1
H GNUnet - новый конкурент TOR Софт для работы с текстом/Другой софт 0
S Correlation attack на Tor с точностью 96% Уязвимости и взлом 0
G Слабые места Tor и MikroTik Полезные статьи 1
G Безопасность сайтов в Tor. Взлом Hidden Tor Service. Kali Linux 0
G Скрываем факт использования TOR Полезные статьи 0
S Создание сайта в сети TOR Низкоуровневое программирование 1
Sasha3108 Заходим в DarkNet без TOR, VPN и т.д. Способы заработка 3
S IOS и Android, основы безопасного доступа в Tor и анонимной переписки Настройка системы для работы 4
S OnionShare - сервис анонимной передачи файлов с Tor. Анонимность и приватность 0
S Как пропустить TOR через Socks? Анонимность и приватность 0
P Просмотр сайтов "onion" без Tor-а Полезные статьи 6
E Гоним весь трафик через TOR Анонимность и приватность 2
Ю Материал про Tor. Анонимность и приватность 9
F [Слив с TOR] ULTIMATE PAYPAL CASHOUT Способы заработка 9
K 7 сайтов в Tor, за которые могут посадить. Полезные статьи 13
C Анонимность в Tor: что нельзя делать. Анонимность и приватность 6
C Как вас могут вычислить даже при условии использования Tor Browser. Анонимность и приватность 0
S Фальшивое приложение Tor атакует пользователей «Темной паутины» Новости в сети 0
E Tortilla — весь TCP и DNS трафик из виртуальной машины через TOR Анонимность и приватность 11
E Tortilla — весь TCP и DNS трафик из виртуальной машины через TOR SSH / дедики / Vpn / Proxy / Socks 0
C В Госдуму внесен законопроект о запрете VPN и Tor на территории РФ Новости в сети 4
M TOR на смартфон - TORnado браузер SSH / дедики / Vpn / Proxy / Socks 9
T TOR+VPN за 5 минут SSH / дедики / Vpn / Proxy / Socks 1
O Пропускаем весь трафик через TOR (Linux) Анонимность и приватность 9
$ Tor Browser Portable [Версия без установки] Софт для работы с текстом/Другой софт 4
Glods Анонимный браузер TOR - что это такое? Полезные статьи 0
P Пропускаем весь траффик через Tor на Mac OS Анонимность и приватность 1
K В Беларуси начали блокировать Tor Новости в сети 0
S Пропускаем трафик через TOR Анонимность и приватность 4
Admin TOR->SSH. Или настраиваем TOR Browser для работы в .onion Настройка системы для работы 1
Admin Перенос проектов в tor Полезные статьи 1
S Wifi роутер для сборки mac адресов WiFi/Wardriving/Bluejacking 5
S в комп через роутер. Вопросы и интересы 7
obscure Интересно YouTube канал на кардер\хаккинг\скам\кодер тематику Видео/Музыка 0

Название темы