ZeroLab.NeT Viewer — Аналог TeamViewer

Удаленная поддержка пользователей за NAT, но не через чужие неконтролируемые сервера, а через свой. Если вас, как и меня, посещала когда-либо подобная идея, то у меня для вас хорошая новость.

Для реализации реверсивного туннеля будет использоваться SSH, ведь он идет чуть ли не из коробки практически в любом Linux дистрибутиве. В наше время найти очень дешевый VPS на Linux вообще не проблема. SSH-сервера есть и под Windows, при желании можете настроить и на нем. Самое важное, чтобы наш сервер ретрансляции имел прямой доступ в Интернет, будет использоваться диапазон портов 20000-60000.

Если SSH-сервер у вас не предустановлен, устанавливаем на примере Debian GNU/Linux:

1
apt-get install openssh-server

Добавляем в конфигурацию ‘/etc/ssh/sshd_config’ в конце файла:

1
2
3
4
5
# ssh reverse tunnel bind to all interfaces
GatewayPorts yes
TCPKeepAlive yes
ClientAliveInterval 5
ClientAliveCountMax 2

Перезапускаем SSH-сервер:

1
service ssh restart

И добавляем служебного пользователя, к примеру ‘helper’, без доступа к консоли:

1
2
useradd -M -s /bin/false helper
passwd helper

Если вы настраивали iptables, то откройте диапазон портов 20000-60000:

1
iptables -A INPUT -p TCP --dport 20000:60000 -j ACCEPT

На этом настройка SSH-сервера завершена. В качестве бонуса так же опционально реализована работа с обфусцированным SSH-сервером, для зарегулированных правительством пользователей под контролируемыми DPI каналами связи. Программа хранит свои настройки в ini-файле для простой переносимости, пароли не хранятся в открытом виде. Работает без прав администратора.

Для реализации удаленного доступа я решил воспользоваться открытым проектом Aspia. Скорость, качество отрисовки, ресурсопотребление и простота настройки которого очень напоминают Radmin. Файл с базой пользователей и правами доступа находится в папке с программой ‘bin\userlist.dat’. По умолчанию выставлен пользователь ‘1’ с паролем ‘123456’ и минимальными правами лишь на удаленное управление. Вызов окна редактирования прав доступа можно и необходимо выполнять из моего приложения.

Для большей универсальности в качестве опции было принято решение добавить VNC сервер — TightVNC. При запуске автоматически устанавливаются оптимальные настройки, реализована установка VNC пароля на доступ из моего приложения.

Преднастраиваете сервер, отправляете пользователю, он жмет пару кнопок и диктует вам ID/порт, вы в клиенте вводите адрес своего сервера ретрансляции и ID/порт, подключаетесь к пользователю. Вот и все, приятного пользования!

Скачать zeroviewer-1.8.9.1-ZeroLab.NeT (версия 1.8.9.1, обновлено: 04.07.2018 — 21:52)[~3.3 МБайт]

Выпущена вторая линейка.

Сайт с новой версией: https://null.la/

Категория: Programming

Теги: , , , , , ,

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

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Аватары обслуживаются системой Gravatar. При публикации сообщения, Вы можете указать свой e-mail в этой системе.

комментарий 21

  1. ZeroChaos:

    Не доверяете — не пользуйтесь. Проанализировать исходящий трафик можно и без исходного кода. Потратьте и настройте, напишите аналог с открытым исходным кодом, ничто не мешает вам это сделать. Выкладывать свой код или нет — решать только мне, хватит его уже выпрашивать на каждом шагу. В определенный момент посчитаю нужным его выложить — выложу. Пока не вижу смысла, 99,9% он не нужен.

  2. CodeNull:

    Здравствуйте.

    Можно где-то посмотреть код программы? Github? Большие вопросы вызывает сохранность данных. Если я не могу проект просмотреть и/или самостоятельно собрать, то как я могу доверять ему пароли и ключи?

    Надеюсь те кто пользуются данной программой, понимают все риски? Возможно лучше потратить немного времени и самостоятельно настроить туннель посредсвом plink.

  3. Zarbin:

    Огромнейшее спасибо за ваше программу, давно ждал подобного решения) Но как и комментатор Otto соглашусь, сервер на котором разрешен вход по паролю постоянно атакуется, и такой способ давно отключен. И как сделать автозапуск программы ?

  4. ZeroChaos:

    Выпущена вторая линейка программы. Ссылка в конце поста.

  5. Otto:

    Добрый день!
    А авторизацию по ключу можно как-то сделать?
    Сервер с SSH на белом IP постоянно атакуют боты, с ключом как-то удобнее.

  6. ZeroChaos:

    И что же я нарушил, стесняюсь спросить? GPL лицензия обязывает предоставить исходники по запросу, не более того. Исходники правленной Aspia вы у меня не запрашивали (на сайте есть форма обратной связи), сразу бросились обвинять. TightVNC, plink, plonk идут в неизменном виде. ZeroViewer — мой код, ничьи наработки не использовались, вправе распоряжаться им как мне угодно. Хотели свою грамотность кому-то показать? Что ж, у вас это плохо получилось.

  7. Legion_Pheonix:

    Ай ай ай, как не хорошо нарушать GPL соглашение на основе чужой работы)

  8. no name:

    Приветствую, отличная идея и реализация, хотелось бы задать несколько вопросов
    Во-первых интересует можно ли добавить возможность генерировать и загружать профиль putty для plink вместо обычного подключения? насколько я знаю это даёт весомое преимущество в виде keepalive.
    Кроме того непонятно обрабатывается ли сейчас как то отвал туннеля? просто в 85% случаев plink при обрыве падает, а в оставшихся остаётся висеть как ни в чём ни бывало.
    Ещё можно принимать ключи сервера, например так: cmd.exe /c echo y | plink.exe bla bla bla…
    И как я понял вы самостоятельно собираете aspia. Можно ли добавить сохранение имени пользователя и пароля?

  9. neurooctober:

    Если уж используете открытый проект Aspia, то и исходники вашего проекта откройте. Так сказать, для полной гармонии.

  10. ZeroChaos:

    Нет.

  11. Евгений:

    А как службу можно запустить данный сервер?

  12. Maxlinus:

    привет
    один из вариантов не выставлять такое количество портов на ружу, чтобы всё работало только через один порт

  13. ZeroChaos:

    В чем практический смысл? Не могу понять. SSH-сервер размещаем на сервере с выделенным IP и с открытым наружу диапазоном портов 20000-60000. В этих условиях не нужно находиться с SSH-сервером в одной сети. Распишите подробно, что вы в итоге хотите получить, чтобы я увидел в этом практический смысл.

  14. Maxlinus:

    будет ли клиент с ssh частью, если скажем я нахожусь не в одной сети с сервером ssh.

  15. ZeroChaos:

    Для тех, кто успел скачать версию 1.9.0, — это был тестовый билд. Я не рекомендую его к использованию. Была попытка немного переделать архитектуру, в итоге приведшая в тупик. Тем не менее, в ней были удачные находки, сделал их бэкпорт в версию 1.8.9. Это выверенная и оптимизированная версия, рекомендуется к окончательному использованию. В принципе, разработка завершена.

  16. ZeroChaos:

    Таких планов пока нет.

  17. kit42:

    Скажите, а планируется ли версия для macOS?

  18. ZeroChaos:

    Еще более тесная интеграция, теперь права доступа для ‘Aspia’ сохраняются и читаются из папки с программой (‘bin\’). Вызов на редактирование прямо из приложения.

  19. ZeroChaos:

    Большое обновление. Работа без прав администратора, опциональная фиксация ID/порта, немного косметики. Рекомендовано к обновлению.

  20. ZeroChaos:

    Через полторы недели для большей универсальности в качестве опции было принято решение добавить VNC сервер — TightVNC. Обновляемся.

  21. ZeroChaos:

    Выложена новая версия, рекомендовано к обновлению всем, пересобран Aspia, решена проблема работы на Windows 10 April 2018 Update (version 1803). Думаю, это окончательная сборка.

Donate

Яндекс.Деньги:

VISA/MasterCard:

PayPal:
PayPal USD
PayPal RUB
WMZ WMZ: Z375880088307
WMR WMR: R883546545943
YAD YAD: 4100170884493

Donate - лучшее спасибо автору
Количество благодарностей: 37

Разделы