Понятно.
При такой картине можно неделями не рассчитывать на открытые порты.
Все равно - спасибо за внимание!
Собственно, свою проблему уже решил.
SSH-туннель через сеть TOR.
Отпишусь, может кому пригодится (пока разбирался, нашел в сети массу похожих на мою проблем без решения).
Админ, не пинай, если что.
Итак:
имеем сервер (s_1) на Амазоне (aws.amazon.com) в заблокированном РосКомНадзором сегменте.
Сервер 100% работает, но нет ответов на пинг по ip.
Пинг по днс-имени айпишник сервера возвращает (DNS имя резолвится, так кажется?).
При включенном OVPN - пинг по ip проходит. (Через консоль аккаунта на Амазоне в правиле внешнего файерволла разрешён ICMPv4)
Требуется:
подключиться по удалёнке (стандартным RDP-клиентом Win), что, ессно, невозможно при недоступности адреса узла.
Дополнительные возможности (и проблемы):
могу поднять на том же Амазоне ещё 12 серверов (не могу к ним подключиться).
Что делаем:
1
Поднимаем еще сервер (s_2) на Амазоне под *nix (или используем свой, если есть). Нужен узел "за барьером", к которому будем подключаться по SSH_other_VPN (а после SSH_other_Tor) и строить ssh-туннель.
* * *
Почему ssh, если нужен RDP?
- не нашёл "с ходу" ВПН с открытым 3389-ым портом
- На нужном сервере S_1 (Win2008) "внутри" открыт только 3389-ый порт. На внешнем файерволле через WEB-консоль можем открыть любой порт, но кто его "внутри" будет слушать?
- на сервере S_2 (*nix) ТОЧНО открыт порт 22
- бесплатные ВПН, пропускающие соединения по 22-порту, для тестов и настройки подключения найти оказалось проще. Тот же "Free KSC". 300 мб в сутки при регистрации по е-мейл. Для тестирования хватило.
(Админ, за "имя_конкурента" не бей больно. Просто покупать ВПН для тестов не айс, а этот быстрее всего найти оказалось.)
* * *
2
Ставим PuttY.
* * *
Почему PuttY, а не какой-либо проксификатор/соксификатор?
- с PuttY получаем консоль для работы с сервером S_2 (*nix-сервер)
- PuttY "строит" туннель к серверу S_1
* * *
Качать и ставить ПОЛЕДНЮЮ англ версию. Релиз 0.70 работает норм.
Русифицированная PuttY (старая, свежих вроде нет) не захотела работать.
Настроек минимум:
- в Category-Session указываем "HostName" сервера S_2 и порт 22. "Connection Type" - SSH. (подразумевается, что мы знаем имя узла, куда подключаемся. На Амазоне имя смотрим в консоли.)
- в Category-Connection-Data указываем "Auto-login username" (для Амазона - смотрим в консоли нового экземпляра. Зависит от ОСи на сервере. На своих серверах вы его знаете.)
- в Category-SSH-Auth указываем путь к к файлу Private_Key (На Амазоне при старте *nix-экземпляра сервера - instance - приваткей генерируете и сохраняете. Он уже у вас есть)
!!! Амазоновский ключ *.pem (для *nix-ов) c помощью PuttYGEN (входит в дистрибутив) преобразовать в формат *.ppk! *.pem PuttY не понимает!!!
- в Category-Connection-SSH-Tunnels в "Source port" пишем localhost:3002 (порт любой свободный, необязательно 3002), в "Destination" пишем "айпи_компа_куда_направлять_RDP_пакеты:3389". Мне нужно на сервер S_1, значит "ip S_1":3389,
жмём Add. В окошке выше должна появиться строка вида: "L127.0.0.1:3002 xxx.xxx.xxx.xxx:3389"
- в Category-Session в "Saved Session" вписываете понятное вам имя и жмяк на Save. Текущие настройки сохранятся под SessionName.
3
Включаем ВПН. Он сменит шлюз по умолчанию и "выпустит за бугор".
Обязательно!!! ВПН должен пропускать пакеты по 22-му порту!!!
Если не уверены - просканируйте свой айпи (с включенным ВПН!), например тут:
2ip.ua/ru/services/ip-service/port-check
В списке открытых должен быть порт 22!
В окне PuttY жмем Open (открываем сессию с сервером S_2)
Если до сих пор у вас все правильно - видим *nix-консоль сервера S_2!
Из консоли S_2 пингуем сервер S_1.
В случае с Амазоном - оба сервера "за бугром" в заблокированном сегменте. Но по внешним ip (public IP) доступны друг другу. Убедитесь, что S_2 не в России, если используете свой, а не Амазоновский!
S_1 должен отвечать на пинг серверу S_2.
Можно продолжать.
4
ВПН (с открытым 22-ым портом) включен, PuttY настроили и сессию открыли (запустили PuttY, выбрали настроенную в шаге 2 сессию и нажали Open).
- Запускаем консоль cmd.exe (Жмем Пуск-Выполнить (или кнопки Windows+R), в открывшемся окне пишем cmd)
- в cmd пишем:
netstat -aon | find ":3002"
-Команда должна вернуть следующие строки:
TCP 127.0.0.1:3002 0.0.0.0:0 LISTENING 6816
TCP [::1]:3002 [::]:0 LISTENING 6816
Всё ОК, PuttY "слушает" на 3002-м порту
5
- Запускаем RDP
(пишем в cmd "mstsc" или находим на компе mstsc.exe в папке Системный_Диск:\WINDOWS\System32)
- В окне Remote Desktop Connection (Подключение к удаленному рабочему столу) вводим 127.0.0.1:3002
* * *
Вуаля! Вводим имя и пароль пользователя и рулим по RDP удалённым сервером S_1!
Кто будет и дальше использовать SSH-туннель через ВПН - может идти пить пиво.
Нам же ещё нужно скачать и настроить Tor-браузер.
* * *
Поэтому:
6
Качаем и ставим Tor. Использовал стандартный дистрибутив torbrowser-install-7.5.4_en-US без дополнений в виде Vidalia или других.
- После установки запускаем Tor (чтобы создался конфигурационный файл torcc.
По умолчанию в папке C:\Users\User\Desktop\Tor Browser\Browser\TorBrowser\Data\Tor\)
- Открываем torcc Блокнотом или другим редактором и вносим дополнительные строки (Комментарии "#" Tor игнорирует) под самой нижней НЕЗАКОМЕНТИРОВАННОЙ строкой:
# Выберем "выходную ноду", т.е. "из какой страны будем видны" в Инете:
# Сейчас мне нужна Франция. S_2 во Франции, выбираем "выход" ближе к S_2
ExitNodes {fr}
# Могут понадобиться другие "выходы". Можно сделать заготовки:
# ExitNodes {de}
# ExitNodes {us}
# Выходить только с указанных "нод":
StrictNodes 1
# Разрешим использовать один прыжок ("hop"):
# Мне не нужны дополнительные промежуточные узлы сети Тор
# Но ТОР всё равно строит HopCircuits минимум из 3-х узлов. Не нашел, как принудительно задать 1 узел. Всё же пусть:
AllowSingleHopCircuits 1
# Запретим выходную ноду в России, чтоб не "напороться, за что боролись"
# (если нужно подключаться к ресурсам,
# которые, например, в блэклисте провайдеров благодаря РКН):
ExcludeExitNodes {ru}
# TOR Socks-прокси "слушает" порт на:
SocksPort 127.0.0.1:9050
- Перезапускаем Тор.
Если ТОР при запуске выдаст ошибку - накосячили при добавлении строк. Уберите все добаленные и добавляйте по одной без строк коментариев. Но я скопировал все строки из своего нормально запускающегося и работающего конфига ТОРа
- В cmd пишем:
netstat -aon | find ":9050"
- В ответ должны увидеть следующее:
TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 7012
Tor слушает на 127.0.0.1:9050.
7
!!!Отключаем ВПН!!!
Пишем exit в консоли S_2 (в PuttY, если еще не закрывали консоль), закрываем консоль.
Запускаем PuttY.
- в Category-Session в "Saved Session" выбираем сохраненную в конце шага 2 сессию. Жмем Load. Прежние настройки загрузились.
- в Category-Connection-Proxy указываем сокспрокси TOR-а: выбираем "Proxy Type" "Socks 5", в "Proxy hostname" пишем localhost или 127.0.0.1, "Port" 9050
- в Category-Session в "Saved Session" жмяк на Save. Измененные настройки сохранятся.
- Жмем Load в PuttY, видим консоль S_2
- Запускаем RDP на адрес 127.0.0.1:3002 (как в конце шага 5)
Вуляля. Подключились без ВПН, используя ТОР.
Пока нужен RDP - не закрываем ТОР и PuttY.
ВСЁ. Настроек немного, просто нужно быть внимательным, по шагам выполнять, что написано. Проверил свою "инструкцию", настроив Тор и Putty на новой виртуальной машине. Все работает.
В итоге:
- запустив ТОР, мы преодолели "барьер" провайдера, используя шифрованную сеть ТОР (или туннель TOP? Не уверен как правильно).
- настроив PuttY на сокс-прокси ТОРа, подключились к S_2 по шифрованному SSH-туннелю.
- запустив RDP на 127.0.0.1:3002, подключились к S_1 по шифрованному протоколу RDP внутри SSH-туннеля.
Шифрованный протокол (туннель?) RDP, внутри шифрованного SSH-туннеля, который внутри шифрованной сети ТОР.
Ничо такая "луковица в луковице"
Все работает, далее "шлифуем под себя" - запуск ТОР, как службы, запуск всего этого добра с пакетного файла и еще чего только придумаем.
"Скелет" готов и работает.
*Прошу прощения за изложение - сам во всем этом "чайник", старался понятно для "чайников" же и написать
*Есть подозрение на грани уверенности, что можно сделать проще. Но пока не дошел КАК
*Через ВПН работает быстрее, чем через ТОР.
*Поэтому хочется принудительно отключить "лишние" hop-ы (узлы) в ТОRе. Шифрования тут вроде достаточно , а "следы путать" через цепочку "hop-ов" ТОРа мне ни к чему. Пока по крайней мере
Но тоже пока не нашел КАК.
Кто знает - черкните пару строк в формате "для чайников"
Админ, "письмо" дюже длинное вышло - не пинай, плиз.
А тему было бы правильнее переименовать типа "RDP через ВПН или TOR". Если это возможно.
Всем успехов.
P.S. Зачем это всё надо?
1 Надо использовать бесплатные (на год!) компы (удалённые VPS Амазона)
2 VPS есть - а "барьер к ним не пускает"
3 Есть требовательные к ширине канала (Mbps) приложения. Домашний канал забивают "под завязку", а "у буржуев" заявлено !!!1 Gbit/s!!! (но правда "измерялка" на 2ip.ua показала 150 Mbit/s "DOWN" и 50 Mbit/s "Up") Там и буду их запускать!
4 Можно ещё "по-играть" с X11Forwarding окон графических приложений с консольных *nix-ов (того же *nix-ового "rdesktop") на локальную машину Тоже интересная тема! Лазить в инете с *nix-овой машины с обалденной шириной канала, а окно браузера "форвардить" на свой комп. Понадобится Xming.
5 Да и вообще - интересно же