http://www.devdungeon.com/content/setting-tor-proxy-and-hidden-services-linux
http://help.ubuntu.ru/wiki/tor
Тут про установку на Raspberry Pi
https://tor.stackexchange.com/questions/242/how-to-run-tor-on-raspbian-on-the-raspberry-pi
Предлагали ещё использовать tun2socks в связке с тором, но пока врядли.
https://code.google.com/archive/p/badvpn/wikis/tun2socks.wiki
Нет, конечно же тора нет в предустановленных программах. Просто я уже накосячил и установил старую версию из репозитория по умолчанию. А она там не обновлялась несколько лет. Поэтому хотелось бы самую свежую версию.
Итак, у нас установлены пакеты tor
, tor-geoipdb
и torsocks
.
sudo apt-get purge tor
удаляем tor и tor-geoipdb
sudo apt-get purge torsocks
и отдельно torsocks.
sudo apt-get autoremove
на всякий случай удаляем неудалённые зависимости от уже удалённых пакетов, хотя таких уже не должно быть.
sudo apt-get autoclean
заодно можно почистить пакеты .deb которые больше не используются (рекомендуется использовать периодически)
Будем ставить самую свежую из стабильных версий: 0.2.9.10-1. Для этого нужно подключить репозиторий stretch, если это не сделано ранее, и ставить оттуда.
sudo apt-get update
sudo apt-get install tor -t stretch
Ещё может пригодиться proxy-сервер Polipo
sudo apt-get install polipo
Также можно было легко и быстро установить старую версию тора 0.2.5.12-4 просто вызвав
sudo apt-get install tor
. Но она очень стара. Чуть ли не 2013 года.
Ещё можно ставить из исходников версию 0.3.0.7, но там очень проблемно установить. И не знаю как сделать автозапуск.
Скачать исходники тут https://www.torproject.org/download/download.html.en#source (Source Tarball)
Кидаем архив в какую-то папку, переходим туда, распаковываем архив и собираем его
sudo apt-get install libevent-dev
tar -xvzf tor-0.3.0.7.tar.gz
cd tor-0.3.0.7/
./configure
make
Дальше можно запускать сразу из этой папки
src/or/tor
или установить его в системуsudo make install
и запускать уже просто командойtor
Если устанавливал командой sudo make install
, то можно удалить командой sudo make uninstall
выполненной из папки, где собирались исходники. Не удалится только изменённый конфиг. И может пустая папка где останется.
Команда make install
вроде бы кидала файлы в папки
'/usr/local/bin'
'/usr/local/etc/tor'
'/usr/local/share/'
Файл конфигурации находитя в одном из этих мест, смотря как устанавливали:
/etc/tor/torrc
/usr/local/etc/tor/torrc
Для начала нужно раскомментировать эти строчки и подставить туда свой IP
SOCKSPort 9050 # для лакальных подключений
SOCKSPort 192.168.x.x:9050 # для подключения с других компьютеров через SOCKS-прокси (тут ip RPi)
SOCKSPolicy accept 127.0.0.1
SOCKSPolicy accept 192.168.0.0/16 # по необходимости
SOCKSPolicy reject *
И, при необходимости, добавляем вот эти настройки. Хотя при использовании polipo они не нужны.
ClientOnly 1 # так, на всякий случай
TransPort 9100 # для локальных подключений
TransPort 192.168.x.x:9100 # для подключения с других компьютеров через transparent-прокси (тут ip RPi)
DNSPort 9053
DNSListenAddress 127.0.0.1
VirtualAddrNetwork 10.254.0.0/16 # виртуальные адреса для .onion ресурсов
AutomapHostsOnResolve 1 # не разобрался что это
Control the service using standard systemctl or service commands
service tor restart
systemctl restart tor
curl --socks5-hostname localhost:9050 https://check.torproject.org
На винде проверять будем, открыв адрес https://check.torproject.org/
sudo iptables -t nat -L --line-numbers
посмотреть правила
sudo iptables -t nat -S
тоже посмотреть но в другом виде
sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.1.2 --dport 80 -j REDIRECT --to-port 8123
добавить правило
sudo iptables -t nat -D PREROUTING 1
удалить правило
https://github.com/ambrop72/badvpn/wiki/Tun2socks
Установить утилиту CMake для настройки сборки tun2socks (около 20 мегабайт)
sudo apt-get update
sudo apt-get install cmake
Скачать весь badvpn
git clone https://github.com/ambrop72/badvpn.git
Теперь собрать из всего badvpn только tun2socks
mkdir badvpn-build
cd badvpn-build
cmake /path/to/badvpn -DBUILD_NOTHING_BY_DEFAULT=1 -DBUILD_TUN2SOCKS=1
make
И пробуем установить
sudo make install
установится вот сюда:
-- Installing: /usr/local/share/man/man7/badvpn.7
-- Installing: /usr/local/bin/badvpn-tun2socks
-- Installing: /usr/local/share/man/man8/badvpn-tun2socks.8
Запускаем tun2socks:
sudo badvpn-tun2socks --tundev tun0 --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:9050
Смотрим, возможно в другой консоли, появился ли адаптер tun0:
ip link show
Проверяем работоспособность интерфейса:
curl --interface tun0 https://check.torproject.org/
Пока что перенаправляем весь трафик.
Сначала нужно разрешить перенаправление в системе. Для этого нужно добавить строчку net.ipv4.ip_forward=1
в файл /etc/sysctl.conf
после чего перезагрузить Raspberry Pi.
Теперь на Raspberry Pi добавляем такие правила в iptables:
sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9080 -j DNAT --to-destination 10.0.0.2:80
sudo iptables -t nat -A POSTROUTING -d 10.0.0.2 -j MASQUERADE
Домашняя страница проекта http://darkk.net.ru/redsocks/
Самая последняя версия - 0.5
sudo apt-get install redsocks -t stretch
redsocks -h
- посмотреть справку
redsocks -v
- версия программы
redsocks -t
- протестировать файл конфигурации
Файл конфигурации лежит тут: /etc/redsocks.conf
.
Ниже я приведу те части конфига, которые нужно изменить. Они там уже есть, просто меняем значения.
redsocks {
local_ip = 127.0.0.1;
local_port = 12345;
ip = 127.0.0.1;
port = 9050;
type = socks5;
}
Для этого нужно добавить пару правил в iptables
sudo iptables -t nat -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:12345
sudo iptables -t nat -A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 127.0.0.1:12345
и проверить доступ через сеть tor
curl https://check.torproject.org/
Взято тут: http://unixlab.blogspot.com/2012/04/transparent-proxy-on-linux-using.html
# Create new chain
sudo iptables -t nat -N REDSOCKS
# Ignore LANs and some other reserved addresses.
sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
# Anything else should be redirected to port 12345
#sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
sudo iptables -t nat -A REDSOCKS -p tcp -j DNAT --to-destination 127.0.0.1:12345
это ещё не всё.