Skip to content

Jabpunch — программа для удаленного управления Windows.

скачать.

Описание.

  • Jabpunch позволяет запускать тоннель OpenVPN, когда обе стороны находятся за NAT и имеют приватные адреса. Для первоначального установления соединения используются Jabber и STUN-серверы, затем данные openvpn-соединения проходят напрямую между конечными точками. Информация проходящая через jabber шифруется. Jabpunch может использовать как публичные так и собственные Jabber и STUN-серверы.
  • Jabpunch позволяет удаленно запустить командную строку, передавать команды и получать результаты их выполнения через jabber-сервер (подобие telnet). С помошью этой функции можно, например, просмотреть список запущенных процессов на удаленной машине (команда tasklist), завершить процесс (taskkill), запустить/остановить службу (net start/net stop) и т.д.
  • Jabpunch встроена система удаленного помощника Windows Vista/7, что дает возможность видеть удаленный рабочий стол и управлять с помощью клавиатуры и мыши.
  • Jabpunch не требует установки, также нет необходимости в установленном OpenVPN: необходимые файлы уже включены в состав дистрибутива. Может работать в качестве службы (с некоторыми ограничениями), при этом отпадает необходимость в интерактивном входе пользователя в систему.
  • Jabpunch распространяется с исходными текстами. Таким образом программа является аналогом Hamachi, Team Viewer, Radmin, но с открытым исходным текстом.

Настройка

1) Распаковать архив в любую папку по вашему усмотрению.
2) Запустить программу. При первом запуске сразу откроется окно настроек. В нем некоторые параметры установлены по умолчанию.


Для быстрой настройки нужно указать свой Jabber Name, Jabber Password и установить виртуальный адаптер (кнопка Install Adapter). При установке появится окно с сообщением о том, что драйвер не тестировался на совместимость, нужно согласиться на установку. На удаленную сторону можно перенести каталог с программой с локального компьютера, в этом случае повторно настраивать параметры не придется, нужно будет только установить адаптер. Команду на запуск установки адаптера на удаленном компьютере можно подавать из контекстного меню.

Для более детальной настройки рассмотрим все параметры:

Jabber Name — адрес вашего jabber-аккаунта (для всех хостов нужно использовать только один аккаунт). Jabber адреса нужно указывать полностью т.е. вида: name@jabber.ru. Ресурсная часть адреса тоже можно указать, при этом адрес будет вида name@jabber.ru/server, а в списке хостов в главном окне программы на удаленной стороне появиться соответствующая запись «server». Ресурсная часть адреса должна быть уникальна для всех компьютеров. Если не указывать ресурс, то он генерируется автоматически на основе внешнего ip и имени компьютера. На скриншоте показано, как будут выглядеть удаленные компьютеры с разными установками ресурсов:

 

Jabber Password — пароль для jabber-аккаунта.

Command Encript Key — пароль для шифрования данных проходящих через сеть Jabber.

Keep Alive — указывает через какие промежутки времени (в минутах) отсылать тестовое Jabber-сообщение

STUN Server — адрес STUN-сервера. Список серверов: stun.voipbuster.com stun.xten.com stunserver.org stun01.sipphone.com stun.ekiga.net stun.fwdnet.net stun.ideasip.com stun.iptel.org stun.rixtelecom.se stun.schlund.de stun.softjoys.com stun.voiparound.com stun.voipstunt.com stun.voxgratia.org.

Disable Sleep — препятствует переходу системы в ждущий/спящий режим.

Install Adapter — запускает установку виртуальной сетевой карты. После выполнения команды установки будет выведено всплывающее окно с результатом.

Remove All adapters — удаляет все установленные виртуальные адаптеры в системе. Если требуется удалить только один адаптер, то это можно сделать через диспетчер устройств Windows. После выполнения команды удаления будет выведено всплывающее окно с результатом.

Install Service — устанавливает программу в качестве сервиса Windows. Если программа будет работать в этом режиме, она не сможет выполнять команды установки/удаления виртуального адаптера и запускать удаленного помощника. После выполнения команды установки будет выведено всплывающее окно с результатом.

Remove Service — отменяет установку в качестве сервиса Windows. После выполнения команды удаления будет выведено всплывающее окно с результатом.

Tunnel Local IP — IP адрес который будет задан в качестве адреса туннеля с локальной стороны. На удаленной
стороне будет установлен IP с последним байтом на 1 больше.

OpenVPN Options — строка запуска OpenVPN. Jabpunch автоматически расчитывает и добавляет
параметры —remote —lport —rport —management —ifconfig, остальные параметры берутся из этой строки. Для шифрования OpenVPN-туннеля надо использовать параметр —secret и указать файл с ключем. Ключ для шифрования можно сгенерировать в каталоге bin командой: openvpn —genkey —secret 1.key. Файл с ключем нужно скопировать в папку с файлом jabpunch.exe.

OpenVPN Port — предпочитаемый локальный порт, по которому Jabpunch первоначально попытается установить соединение. Для увеличения вероятности прохождения пакетов через NAT лучше использовать стандартный порт STUN-сервера 3478.

Настройки сохраняются в файле jabpunch.ini

Работа программы

При запуске программа определит тип NAT и подключится к Jabber-серверу. Если запущены копии программы на удаленной стороне, то в окне со списком хостов появятся соответствующие записи. Все операции с удаленными системами можно выполнить вызвав контекстное меню:

 

Start OpenVPN — Запуск OpenVPN-туннеля. Программа выполняет алгоритм (подробно описанный ниже) и запускает OpenVPN. Состояние запуска отображается в поле «OpenVPN Status», IP-адреса конечных точек туннеля в полях «Local Tunnel IP» и «Remote Tunnel IP». Одновременно можно запустить туннель только с одним удаленным компьютером.

Stop OpenVPN — Остановить запущенный OpenVPN.

Query Privileges — Запросить права администратора на удаленной стороне. Появится стандартный запрос Windows на повышение прав. На запрос должен ответить человек, находящийся за удаленным компьютером.

Start Remote Assistance — Запуск удаленного помощника. Поддерживается только в Windows Vista/7. Jabpunch сможет установить соединение удаленного помощника если компьютеры расположены в одной сети, между ними запущен OpenVPN-туннель или настроен доступ по teredo IPv6. Окно удаленного помощника можно изменять в размерах с автоматическим масштабированием изображения удаленного рабочего стола:

 

Start command via Jabber — Запуск программы cmd.exe на удаленной машине и передача ввода вывода по сети Jabber. Данная функция представляет некий аналог telnet-доступа с удаленной системе. С помощью этой функции программы можно быстро выполнить перезапуск сервиса (net stop «Service Name», net start «Service Name»), просмотреть список запущенных процессов (команда Tasklist), завершить процесс (taskkill), выполнить команды ping, tracert, ipconfig и т.д. Особенности передачи ввода вывода по jabber накладывают на выполняемые команды ограничения: например, нельзя нормально выполнить на удаленной стороне программу FAR, размер передаваемых данных за один раз ограничен ~30КБт. На скриншоте представлен результат выполнения ping 8.8.8.8:

 

ADD TAP-adapter — Запуск установки VPN-адаптера на удаленном компьютере. При этом на удаленной стороне будут появляться стандартные запросы Windows о драйвере, на них должен ответить человек, находящийся за удаленным компьютером. Провести установку без запросов в данной версии нет.

Remove All TAP-adapters — Удаление всех VPN-адаптеров на удаленной системе.

Restart Program — Перезапуск программы на удаленном компьютере.

Restart Windows — Перезапуск операционной системы на удаленном компьютере.

Параметры командной строки.

«jabpunch -h» — программа запустится без создания главного окна. Для выхода из программы надо нажать сочетание клавиш CTRL+ALT+SHIFT+F8.

Алгоритм работы запуска OpenVPN-соединения.

Программа содержит клиенты jabber и STUN. При запуске программы определяет тип NAT, подключается к jabber-серверу и ожидает команды от пользователя или по jabber-сети. При команде запуска OpenVPN соединения обе стороны помощью STUN-сервера определяют внешние адреса и порты NAT и передают по jabber-сети удаленной стороне. Затем стороны несколько раз высылают UDP-пакеты на эти адреса:порты. Если с одной из сторон symmetric-NAT, то дополнительно высылаются пакеты на адрес:порт+1 и адрес:порт+2. Если любой из пакетов дошел до удаленной стороны, то запускается openvpn с параметрами —remote —lport —rport, заданными на основе заголовка принятого пакета.

Прохождение пакетов возможно, если NAT full cone, address restricted, port restricted или symmetric с последовательным выделением портов на внешней стороне NAT.

Программа тестировалась на различных вариантах NAT: VMware NAT, Windows 2003 «Маршрутизация и удаленный доступ», Winroute contol, linux Zeroshell, ISA server 2006, Beeline GPRS, MTS GPRS, Megafon GPRS . В большинстве случаев тип NAT port restricted и соединение устанавливается. ISA server 2006 — symmetric NAT с последовательным выделением портов, соединение тоже устанавливается. MTS GPRS, Megafon GPRS — symmetric NAT со случайным выделением портов и, если с другой стороны тип NAT не является full cone или address restricted, то соединение не устанавливается. Билайн GPRS — symmetric NAT на момент тестирования выделял порты последовательно из нескольких участков. Можно угадать какой порт будет выдан следующим, используя несколько STUN серверов подряд. Программа на данный момент не поддерживает такой алгоритм.