Удаленная поддержка пользователей за NAT, но не через чужие неконтролируемые сервера, а через свой. Если вас, как и меня, когда-либо посещала подобная идея, то у меня для вас хорошая новость.
Монополия TeamViewer и некоторых других программ для удаленного доступа (прежде всего, речь идет о программах с функцией быстрой помощи), а так же отсутствие достойных бесплатных альтернатив, натолкнули меня на мысль написать ZeroViewer. Думаю, большинство из вас уже столкнулись с ужесточением условий использования в данных программах, представляющие собой настойчивое предложение купить их для дальнейшего коммерческого использования.
Для реализации защищенного туннеля до сервера ретрансляции будет использоваться SSH, ведь он идет чуть ли не из коробки практически в любом Linux дистрибутиве. В наше время найти очень дешевый VPS на Linux вообще не проблема. SSH-серверы есть и под Windows, при желании можно настроить и под этой операционной системой. Важно, чтобы наш сервер ретрансляции имел прямой доступ в Интернет (наружу достаточно выпустить только SSH порт), внутри будем использовать диапазон портов 20000-60000.
Для реализации удаленного доступа используется эталонная реализация VNC - TightVNC. Для построения защищенного туннеля используется SSH клиент - KiTTY.
Программа хранит свои настройки в ini-файле для простой переносимости, пароли не хранятся в открытом виде. Пользовательский и операторский аккаунты разделены, что позволяет без опасений раздавать преднастроенный клиент только с клиентским аккаунтом. Без операторского аккаунта никто не сможет воспользоваться вашим сервером ретрансляции. Перед отправкой клиенту, проверьте ini-файл, убедитесь, что вы не записали в него операторский аккаунт.
При запуске программы в режиме клиента будет предпринята попытка получить административные привилегии. Можно отказаться и продолжить работать с обычными правами пользователя, но при этом программа не сможет взаимодействовать с другими программами, требующими административных привилегий. Как вы понимаете, это накладывает некоторые ограничения при работе в режиме пользователя с ограниченными правами.
Для корректной работы с UAC в любых вариациях установите через настройки программы TightVNC в качестве службы. Это так же в дальнейшем позволит в режиме клиента работать без прав администратора с возможностью взаимодействовать с другими программами, требующими административных привилегий. В этом режиме иконка программы TightVNC в системном трее скрыта. В режиме службы свой постоянный пароль можно поменять только с правами администратора. Удалить службу тоже можно только с повышенными привилегиями. Если у вас ранее самостоятельно был установлен TightVNC, то, во избежание проблем, нажмите в настройках кнопку "Переустановить".
Настройки:
Сервер ретрансляции
SSH порт - указываем SSH порт вашего сервера ретранляции.
Адрес SSH-сервера - указываем адрес вашего сервера ретранляции.
Клиент|Оператор -- Пользователь|Пароль - указываем учетные данные для клиента и/или оператора.
Информацию по настройке сервера смотри во вкладке Настройка сервера ретрансляции.
Клиент
ID - идентификационный номер клиента, который можно закрепить за определенным пользователем. По умолчанию номер выдается случайным образом.
Пароль - способ генерации пароля. Простой пароль состоит из 5 символов (цифры, буквы, только нижний регистр), сложный из 8 символов (цифры, буквы, верхний и нижний регистр). При желании можно задать свой собственный постоянный пароль (ограничение - 8 символов, полезно при закреплении ID за пользователем). По умолчанию генерируется простой пароль.
Автоподключение - после запуска программы автоматически устанавливать соединение с сервером ретрансляции и включать удаленный доступ. По умолчанию отключено.
Сворачивать в трей - после подключения клиента сворачивать программу в системный трей. По умолчанию отключено.
TightVNC как служба - если предполагается взаимодейтсвие с UAC, клиенту необходимо установить через настройки программы TightVNC в качестве службы (оператору на своей машине этого делать не нужно), для этого однократно понадобятся привелегии администратора. По умолчанию не установлено.
Прочие настройки
Использовать прокси (Нет, HTTP, SOCKS 4, SOCKS 5) - тип прокси.
Порт прокси - указываем порт вашего прокси-сервера.
Адрес прокси - указываем адрес вашего прокси-сервера.
Пользователь|Пароль - указываем учетные данные вашего прокси-сервера.
Разрешить несколько копий программы в режиме оператора - разрешить оператору запускать несколько экземпляров программы. По умолчанию отключено.
Системные требования:
• Windows XP / Vista / 7 / 8 / 8.1 / 10 / 11
• Windows Server 2003 / 2008 / 2008 R2 / 2012 / 2012 R2 / 2016 / 2019
Версия 2.6.5.3
(Размер: 2.3 МБ)
Количество скачиваний:
Настройка сервера ретрансляции:
Если SSH-сервер у вас не предустановлен, устанавливаем на примере Debian GNU/Linux.
apt install openssh-server
Добавляем двух служебных пользователей, к примеру zero_client и zero_operator. Пользователи будут без прав доступа к консоли. zero_client - аккаунт для подключения клиентов. zero_operator - аккаунт для подключения операторов. Аккаунты разделены и будут иметь разные права на сервере, что позволяет без опасений раздавать преднастроенный клиент только с клиентским акаунтом. Без операторского аккаунта никто не сможет воспользоваться вашим сервером ретрансляции (перед отправкой клиенту, проверьте ini-файл, убедитесь, что вы не записали в него операторский аккаунт). После добавления пользователей, устанавливаем им пароли.
useradd -M -s /bin/false zero_client passwd zero_client useradd -M -s /bin/false zero_operator passwd zero_operator
Добавляем в конфигурацию /etc/ssh/sshd_config в конце файла.
Match User zero_client AllowTcpForwarding remote AllowStreamLocalForwarding no AllowAgentForwarding no GatewayPorts no X11Forwarding no PermitTunnel no ForceCommand echo "You've successfully authenticated, but server does not provide shell access." Match User zero_operator AllowTcpForwarding local AllowStreamLocalForwarding no AllowAgentForwarding no GatewayPorts no X11Forwarding no PermitTunnel no ForceCommand echo "You've successfully authenticated, but server does not provide shell access."
Перезапускаем SSH-сервер.
service ssh restart
02.02.2021 Выпущена версия 2.6.5.3, небольшие правки для преодоления разрыва удаленного соединения при отсутствии действий пользователя.
22.12.2019 Выпущена версия 2.6.5.2, исправлено сохранение в пользовательском режиме вручную установленного пароля в ini-файл, поправлена логика сохранения настроек VNC в режиме службы в исключительных ситуациях.
10.12.2019 Выпущена версия 2.6.5.1, мелкие правки UI.
09.12.2019 Выпущена версия 2.6.5.0, полностью переработан механизм работы VNC в качестве службы, добавлена возможность копировать ID и пароль в буфер обмена.
27.11.2019 Выпущена версия 2.6.4.0, добавлены опция автоподключения и контроль запуска нескольких экземпляров программы.
20.11.2019 Выпущена версия 2.6.3.0, небольшие правки логики работы с системным треем, редизайн иконки.
10.09.2019 Выпущена версия 2.6.2.0, небольшие правки логики работы с системным треем, мелкие правки UI.
07.08.2019 Выпущена версия 2.6.1.0, добавлена поддержка прокси.
05.08.2019 Выпущена версия 2.5.9.3, мелкие правки.
05.08.2019 Выпущена версия 2.5.9.2, мелкие правки.
04.08.2019 Выпущена версия 2.5.9.1, мелкие правки.
03.08.2019 Выпущена версия 2.5.9.0, переделан механизм работы VNC в качестве службы.
02.08.2019 Выпущена версия 2.5.8.0, решены проблемы с UAC (добавлена возможность VNC работать в качестве службы).
31.07.2019 Выпущена первая публичная версия 2.5.7.0, реализован основной функционал.