...

вторник, 16 сентября 2014 г.

Tor Hidden Service как техника Nat Traversal

За последние несколько месяцев мне несколько раз пришлось решать довольно однотипные задачи — регулярно получать доступ на компьютеры, «спрятанные» за NAT. Пока это был один стационарный компьютер, все решалось пробросом порта на домашнем роутере плюс DynDNS. Потом добавился ноутбук. И еще один. Ноутбуки могли подключаться к домашнему WiFi, а могли оказаться, например, на рабочем месте. Наша компания предоставляет услуги VPN, но именно в этот период VPN по каким-то причинам работал не стабильно. В ход пошли VPS, обратные ssh-тоннели. Когда конфигурация перестала помещаться в голове, пришла идея сократить количество сущностей, используя Tor Hidden Service.



Как известно, Tor предоставляет возможность создавать «скрытые» сервисы — сетевые имена из пространства .onion, подключение к которым возможно через любой клиент сети Tor. При этом с целью анонимизации сервера, на котором расположены эти сервисы, подключение происходит через «места встречи» (rendezvous points) — компьютеры, не закрытые NAT. Сам компьютер, на котором расположен скрытый сервис, может находиться за NAT, брандмауэром и т. п., но через сеть Tor к нему все равно можно получить доступ.

Сказано — сделано. Устанавливаем Tor-клиент. В конфигурационный файл добавляем две строчки:



HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 22 127.0.0.1:22


В качестве HiddenServiceDir указываем любое место, в котором Tor сможет создать сам каталог (если его нет) и несколько конфигурационных файлов.

В строчке HiddenServicePort первое число — это номер порта, к которому мы получаем доступ через Tor. Теоретически можно указать не 22, а, например, 1234.


Перезапускаем Tor. В каталоге появятся два файла:



  • private_key — секретный ключ вашего сервиса. Tor использует этот ключ из этого файла для работы. Обратите внимание, зная этот ключ, злоумышленник может представиться вашим сервисом и никто ничего не поймет;

  • hostname — автоматически сгенерированный файл с именем вашего сервиса. Если вы удалите или поменяете это файл, все по-прежнему будет работать.


В файле hostname находится имя вашего сервиса вида xxxxxxxxxxxxxxxx.onion.

После этого я на любой машине могу сказать torsocks ssh xxxxxxxxxxxxxxxx.onion и попасть на свой ноутбук.


Для скрытого сервиса можно подобрать менее случайное имя. Для этого используется программа Scallion. Сгенерированный ключ кладется в папку, соответствующую скрытому сервису.


Один Tor-клиент может обслуживать несколько скрытых сервисов (достаточно указать эти строчки несколько раз). Каждый скрытый сервис «обслуживает» один или более портов, пробрасываемых через Tor (указываем несколько строк с HiddenServicePort подряд).


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.

Scottish readers: Undecided about the referendum? Please read Scottish Independence, Power And Propaganda.


Комментариев нет:

Отправить комментарий