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

Drug96

Новичок
Регистрация
4/11/14
Сообщения
37
Репутация
16
Реакции
30
RUB
0
Это поможет не думать о бесконечных настройках прокси и onion, перестать бояться на тему «а не сливает ли торрент клиент мой реальный IP адрес, так как не полностью поддерживает прокси?» и, наконец, быть застрахованным от законодательного запрета TOR-а в России.

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

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

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


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

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

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

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

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



Дисклеймер


Использование tor over vpn не обязательно повышает анонимность. Подробнее:<a href=" style="margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; outline: 0px; color: rgb(153, 0, 153); text-decoration: none; font-family: Verdana, sans-serif; line-height: 22.3999996185303px; background-color: rgb(255, 255, 255);">trac.torproject.org/projects/tor/wiki/doc/TorPlusVPN. В данной статье описывается средство, которое, тем не менее, нужно применять с умом.

Хостинг


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

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

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

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

ssh [email protected]


и получить 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 wheezy main" >> /etc/apt/sources.list.d/i2p.list
echo "deb-src 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

Если не получилось — у вас баг: Поправьте согласно инструкции и добейтесь успешного запуска сервера.

ОК, 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


Теперь допустим, что вы таки хотите 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 не ротируются. И веб-морды нет.

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


Источник:
 
Друг96, чтобы убрать белый фото и прочие недочеты при переносе, необходимо в редакторе выделить весь текст и нажать в левом верхнем углу 2 кнопка (ластик) - он удалит все фоны.
 
Исправил
 
Если вы планируете сделку с его участием, мы настоятельно рекомендуем вам не совершать ее до окончания блокировки. Если пользователь уже обманул вас каким-либо образом, пожалуйста, пишите в арбитраж, чтобы мы могли решить проблему как можно скорее.
Статья класс! Можно будет подумать над улучшением на досуге))
 
Можно свою уникальную написать
 
Если вы планируете сделку с его участием, мы настоятельно рекомендуем вам не совершать ее до окончания блокировки. Если пользователь уже обманул вас каким-либо образом, пожалуйста, пишите в арбитраж, чтобы мы могли решить проблему как можно скорее.
Сначала надо в этом разобраться, но не всё так просто. С debian куда сложнее, чем с виндоус.
 
У меня как раз проект сейчас делается по установке vpn+tor на vps как глобальной сети :)
 
У меня как раз проект сейчас делается по установке vpn+tor на vps как глобальной сети :)
Жаль только, что ТОР уже не такой безопасный, стоит подумать о других сетях
 
Если вы планируете сделку с его участием, мы настоятельно рекомендуем вам не совершать ее до окончания блокировки. Если пользователь уже обманул вас каким-либо образом, пожалуйста, пишите в арбитраж, чтобы мы могли решить проблему как можно скорее.
Тор создаёт анонимность путём рандомизации подключений с разных серверов. Перед отправкой трафика по сети ТОР стоит позаботиться о шифрование такого трафика.
 
Специалисты агентства национальной безопасности США нашли способ обходить систему The Onion Router (Tor), предназначенную для установления анонимного сетевого соединения, и могут получать доступ к отдельным компьютерам, это следует из очередной публикации сведений экс-сотрудника американских спецслужб Эдварда Сноудена в газете Guardian.

Система Tor, или «луковичной маршрутизации», представляет собой сеть защищенных серверов, которые, используя специальные протоколы, позволяют устанавливать анонимное соединение высокой защищенности и передавать данные в зашифрованном виде. По мнению ряда экспертов, использование Tor в совокупности с другими системами такого рода делает возможным обход программ сетевого слежения, включая PRISM. Tor создавалась по заказу ВМС США на основе открытого кода, с целью демонстрации ее прозрачности и отсутствия «бэкдоров», используя это преимущество сторонние разработчики значительно усилили ее потенциал.

Согласно информации Сноудена, в АНБ разработали механизм опознания пользователей с последующей атакой цели через уязвимости в установленном на компьютере программном обеспечении. В частности, через браузер Firefox с Tor-клиентом. После этой операции взломщик получал доступ ко всем файлам, логам нажатия клавиш и сетевой активности. Вместе с тем из публикации становится понятно, что доступ к ключевым функциям системы Tor все же получен не был.

«Мы никогда не будем в состоянии проводить деанонимизацию всех пользователей Tor в режиме реального времени. Наши сотрудники могут проводить анализ и устанавливать лишь незначительную часть пользователей», — говорится в специальной презентации АНБ, обозначенной под грифом «совершенно секретно».

Власти США во вторник закрыли интернет-магазин Silk Road («Шелковый путь»), специализировавшийся на продаже наркотиков через анонимную сеть Тоr, и арестовали владельца магазина Росса Уильяма Ульбрихта. Денежные операции в магазине проводились в биткоинах, которых при аресте Ульбрихта изъяли на сумму 3,6 миллиона долларов.
@РиаНовости

Я считаю, если появилась вероятность вычислить вас в Тор, то в этой сети нельзя сидеть...Тем более это амерские спецслужбы, наши покруче работают, если их нагнут.
 
А есть умельцы кто может создать анонимный браузер наподобии тор? Или что-нибудь новое и революционное, ведь все эти тунели и впн уже устарели и скоро будут вылавливать через них, вопрос лишь времени
 
Вот некоторые аналоги Тора))
I2P (_http://i2p2.de) – одна из самых известных в Германии децентрализованных сетей.
I2P предназначена для создания изолированной, закрытой сети, без выхода во внешний интернет. И хотя в Германии есть прокси "на выход", это не снимает концептуального предназначения системы. Фактически, изолированностью I2P обеспечивается приемлемый уровень анонимности и безопасности пользователей. Ещё раз: i2p не предназначена для сёрфинга обычного, открытого интернета, работы с сайтами, скачиванием торрентов, etc. Да, есть техническая возможность образовать аналог Tor, но - цели разные. I2P идеальна для анонимного и безопасного файлообмена, анонимного хостинга сайтов, анонимного общения. И это - ВНУТРИ сети I2P.

Psiphon (_http://siphon.ca) – веб-прокси, созданный с целью предоставления гражданам стран с жесткой интернет-цензурой полного доступа в интернет. Для нас, в свою очередь, отлично подходит в качестве аналога Tor.
Его цель — обеспечить граждан разных стран доступом к интернет-ресурсам, заблокированным сетевой цензурой. В сети Psiphon жители стран со свободным Интернетом предоставляют свои компьютеры для хостинга прокси-серверов с зашифрованным соединением, используемых гражданами стран с интернет-цензурой. Доступ осуществляется через доверенных участников проекта. Для соединения с прокси-сервером используются уникальные веб-адрес, логин и пароль, причём без внесения каких-либо изменений в настройки браузера. Однако, такая процедура может осуществляться только доверенными лицами, так как администратор прокси-сервера владеет документированной информацией об активности своего пользователя. Программа предупреждает администратора об изменениях в его собственной сети, чтобы он мог предоставить пользователям новые веб-адреса. Psiphon поддерживает анонимный веб-серфинг и блоггинг, но не подходит для чатов и VoIP. В дальнейшем планируется развить проект в отдельную социальную сеть.
Tor (The Onion Router)


Freenet (_http://www.freenetproject.org) - одноранговая сеть, предназначенная для децентрализованного распределенного хранения данных без возможности их цензуры. Работа идет в реальном времени. По сравнению с TOR имеет как недостатки, так и преимущества, изучена недостаточно.
По некоторым причинам она удалена с моего компьютера (больше время отклика, отсутствие динамического контента, низкая скорость загрузки, отсутствие нормального интерфейса, и т. д.) , ибо на данный момент меня больше заинтересовал проект i2p

Я могу тебе описать еще больше десятка сетей)))
 
Сверху Снизу