# Tor Port Forwarding: проще простого
vit01(mira, 1) — All
2016-07-08 06:32:57


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

Проблема: нужно быстро открыть локальный порт для подключения к устройству извне. Пусть это будет для примера порт ssh и web. На пути куча NAT, а выделенного сервера у нас просто нет.

Решение:

# Ставим Tor через стандартные репозитории

sudo su

apt-get install tor

# Правим /etc/tor/torrc

# И туда

# HiddenServiceDir /var/lib/tor/myhiddenservice/
# HiddenServicePort 22 127.0.0.1:22
# HiddenServicePort 8080 127.0.0.1:80

# Перезапускаем Tor

systemctl restart tor # или как-то по-другому

Вот мы открыли в сеть Tor локальный порт 22 и 80 (через Tor 8080). Вообще, держать ssh на стандартном порту - это довольно плохо, но это был просто пример.

Теперь в каталоге /var/lib/tor/myhiddenservice/ будут лежать 2 файла: hostname и private_key.
Делаем их бэкапы.

Открыв файл hostname, обнаруживаем ваш длинный хост .onion. Переносим его на второй компьютер и сохраняем. Можно даже вот так:

Правим файл ~/.ssh/config на клиенте

Host mykomp
      HostName blablablabla.onion
      PubkeyAuthentication yes
      PasswordAuthentication no
      Port 22

Здесь же устанавливаем программу proxychains-ng или просто proxychains. Обычно она есть в официальных репозиториях (на Арче точно есть). Если что, её очень просто скомпилировать из исходников: https://github.com/rofl0r/proxychains-ng

Правим конфиг /etc/proxychains.conf

Там должны быть такие параметры

proxy_dns

[ProxyList]
socks5	127.0.0.1  9150

# или socks4 127.0.0.1 9050

Можно подключаться:

proxychains ssh mykomp

Не забываем проверить ssh fingerprint, потому что в Tor вероятность MITM заметно выше.
Также можно получить доступ к веб-серверу через http://blablablabla.onion:8080, который мы тоже пробросили.

ВСЁ!

Чем это лучше ssh port forwarding?

1. Очень просто. Надо поправить всего пару конфигов, и уже можно пользоваться на постоянной основе
2. Нет проблем с открытием сразу нескольких локальных портов
3. Tor устойчив к обрывам сети. SSH P.F. же часто обрывает весь канал (особенно при неправильной настройке TCP KeepAlive) из-за малейшего сбоя.
4. Не нужен собственный сервер с белым IP
5. Контролируется с помощью обычных сервисов-юнитов (тот же systemd), работает в фоновом режиме. Удобно настроить на автозапуск.

Чем ssh port forwarding лучше этого подхода?

1. Большая скорость.
2. Поддерживается абсолютно везде.

Настроил себе ssh через Tor на домашней машине. Теперь, если срочно надо куда-то уйти, запускаю Tor одной командой и могу не беспокоиться насчёт потерянного доступа. Беру и подключаюсь к домашней консоли через телефон. Для андроида есть официальное Tor-приложение Orbot, которое умеет делать прозрачную проксификацию для любого приложения и вообще очень удобное.

# Re: Tor Port Forwarding: проще простого
Andrew Lobanov(tavern,1) — vit01
2016-07-08 06:47:19


Хорошая статья. Спасибо.