November 13th, 2016

фига

Личная инфраструктура "как бы тим вьюер"

Наткнулся тут на задачу:
- вот у продвинутого пользователя есть:
-- какой-никакой личный сайтик
-- несколько компов (дом, работа, тёщин комп) и, возможно, ресурсов типа видеорегистратора и интерфейсов "умного дома".
-- задача "достучаться до любого из своих ресурсов, находящихся в данный момент в онлайне"
-- сделать это относительно безопасно
-- независимо от того, у какого провайдера компы и за сколькими NAT'ами они.

Решение 1:
Берём Тим вьюер, регистрируемся на их сайте, вбиваем все компы в аккаунт.
+ Плюсы:
++ подключение к рабочему столу параллельно с работой на нём пользователя, "помощь другу" и всё такое
++ очень хороша и стабильна работа с большинством приложений
++ неимоверная простота обращения с продуктом - реально даже очень "ничего не знающие" узеры оказываются способны.
++ Для большей части действий админских прав не требуется.
- Минусы:
-- чтобы тебе не напоминали всё время про то, что ты работаешь бесплатно - минимум надо заплатить 30тр.
-- завязано на внешний сервис, который внезапно может поменять условия и быть взломан.
-- Линуксовая версия теперь только устанавливается, запустить без установки нельзя

(аналог тим вьюера AMMYY мной неоднократно был опробован и отличается от Teamviewer НА ПОРЯДКИ ХУДШЕЙ стабильностью и совместимостью, вылетами в синий экран, странными ограничениями типа "не работаю на серверных ОС").

Решение 2:
OpenVPN с самостоятельной настройкой всего
+ Плюсы:
++ можно строить хитрые комбинации из сеток, а не только связь с конкретным компом.
- Минусы:
-- обязательны админские/root права
-- в качестве хоста требуется минимум VPS на весьма лояльном к трафику И к ip роутингу хостинге. За последние 2-3 года цены понизились, а вот "у вас кривые настройки, знать ничего не хотим пойдите от нас нафиг" стало встречаться всё чаще и заметнее.
-- зависимость от IP адресов, доставшихся компу от провайдера или в местной локалке - если ты "попал в такие же адреса", комп отвалился.
Решение 3:
На VPS ничего поднимать не нужно вообще, нужен ТОЛЬКО шелл ssh.
На самих компах, к которым надо присоединяться снаружи - программа типа MyEnTunnel (для поддержания канала) и plink.exe с опциями командной строки для установления туннеля R127.0.0.1:29389:127.0.0.1:3389. Логика 3389 порт RDP компа пробрасывается на 127.0.0.1:29389 VPS-ки, и тому подобное.
На компе, с которого рулишь прочими - на рабочем столе ярлык поднятия туннеля на VPS с пробросом портов по длинному списку, вида L127.0.0.1:29389:127.0.0.1:29389. И ярлыки доступа к конкретным компам типа Тёща - на 127.0.0.1:29389; видеосервер 127.0.0.1:29390 и тому подобное.

+ Плюсы
++ отсутствует понятие "изменение роутинга" как на самих компах, так и на VPS-ке/хостинге
++ ВСЁ это МОЖЕТ работать из под обычного пользователя, не админа/root'a. Как на компах, так и на VPS (только порты открывайте слушать те, что выше 1024).
++ Единственный IP, который требуется писать в конфигах - это IP VPS-ки/хостинга. ВСЕ прочие конфиги - ориентированы на локалхост.
++ Весь трафик, идущий вне VPS и самих компов, шифруется SSH, и смена версии оного при необходимости не потребует менять конфигов.
++ При желании можно туннелить не только локалхост, но и порты других ресурсов в локалке (опробовал тут недавно - видеорегистратор сам умеет только динDNS, а вот таким туннелем я сделал его доступным клиенту из любого интернета). Правда, тогда конфиги становятся ip-зависимы. :)
- Минусы:
-- если это не твой хостинг, то коннект только на 22 порт, а его провайдер вдруг может перекрыть. Я ради этого у себя поставил sshd слушать 443 порт помимо 22-го. :)
-- по сравнению с тим вьюером намного меньше возможностей "показать рабочий стол" и помочь.
-- трафик и процессор кушаются заметно.

Ваши предложения? Альтернативы? Критика?