Удаленный доступ к 1С используя SSH Тунель



Предлагаемая обработка открывает удаленный доступ к серверу 1С или клиентской машине через SSH-тунель.

Удаленный доступ к серверу или рабочему месту часто требуется различным специалистам: системному администратору, программисту и даже бухгалтеру. Иногда на предприятии штатный системный администратор либо отказывается предоставить удаленный доступ, либо не имеет такой возможности (часто просто местный эникейщик не знает как это сделать). В подобном случае может помочь создание SSH-тунеля.

Данная обработка позволяет создать соединение с удаленным сервером или другим узлом сети напрямую из 1С:Предприятия без использования консоли Linux.

Для реализации подключения нам понадобится SSH сервер с публичным адресом. Схема проста: сервер, куда нам необходимо получить доступ, с помощью внешней обработки соединяется с промежуточным сервером, а системный администратор, используя SSH клиент (для windows подойдет PuTTY), получает доступ порту сервера.

SSH позволяет строить целые цепочки туннелей, соединяя точку входа следующего с точкой выхода предыдущего. Таким образом, чтобы получить туннель с ПК админа на RDP-сервер, при этом оба узла с "серыми" IP-адресами, нам нужно создать два туннеля с промежуточным узлом.

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

Хост

  • Адрес/порт: адрес и порт сервера, куда необходим доступ;

  • Служебный порт: Промежуточный порт доступа, может отличаться от порта сервера

  • Сокет: например /tmp/session1

Сервер SSH

  • Адрес/порт: адрес и порт промежуточного SSH сервера

  • Пользователь: Пользователь промежуточного SSH сервера

  • Открытый ключ: Открытый ключ RSA для доступа без пароля к SSH серверу

Порядок подключения:

  1. Подключаем обработку через Дополнительный отчеты и обработки.
  2. Нажимаем  настройки
  3. Указываем адреса и порты
  4. Создаем ключ
  5. Сохраняем параметры
  6. На промежуточном SSH сервере добавляем ключ и файл доверенных открытых ключей (в случае CentOS это ~/.ssh/authorized_keys)
  7. Нажимаем включить
  8. На удаленном рабочем месте выполняем команду plink.exe -N -L ПортНаРабочемМесте:127.0.0.1:СлужебныйПорт root@ПромежуточныйСервер -pw Пароль -no-antispoof

Теперь по адресу 127.0.0.1:ПортНаРабочемМесте нас перенаправит на Адрес/порт хоста

Если взять настройки на скриншотах, то при наборе в браузере http://127.0.0.1/ИмяПубликацииБазы  откроется веб клиент 1С:Предприятия

Особенности работы с Windows:

В Windows (до win10) нет встроенных инструментов для работы с SSH, поэтому используется утилита PuTTY plink (включил в обработку как двоичные данные).

Генерацию ключей придется произвести вручную с  помощью утилиты puttygen и вставить в соответствующие поля обработки (закрытый ключ из puttygen сначала сохраняем в файл, затем открываем через блокнот и вставляем содержимое в поле обработки "ключ").

Имеется возможность запуска обработки на клиентской машине, чтобы перенаправить соединение, например на сервер RDP в локальной сети. Для этого в адрес хоста указываем адрес или имя RDP сервера в локальной сети (например 192.168.1.15) и порт 3389. В этом случае клиентская машина будет "шлюзом", пока активно соединение или не закроют открывшиеся консольные окна cmd и plink.

 

 

 

Проверено: 

Платформа 1С:Предприятие 8.3 (8.3.14.1630)
Версия БСП: 3.0.1.428
PuTTY Release 0.71

 

Полезная статья: SSH-туннели на службе системного администратора

 

UPDATE 06.08.2024: Отключена проверка ключа хоста для сервера Linux

UPDATE 07.08.2024: Появилась возможность отслеживания состояния подключения на сервере Windows. Добавлена возможность использования нескольких  хостов/портов

7 Comments

  1. oldcopy

    Как автор «полезной статьи» выражаю респект за корректную работу с источниками. Кстати, могу предоставить картинку без водяного знака, напишите мне в личку.

    Reply
  2. tchee

    Ну так. Инструмент для создания бэкдоров для 1с ников… Осталось это завернуть в обработку «чудо кнопка для бухгалтеров» выполняющую минимально полезное действо, повесить со своей стороны скрипт выгребаший то что интересно и собирать бигдату с них..

    Reply
  3. Sedaiko

    (2) Для этого достаточно и HTTP, который реализуется на «чистой» 1С и трафик которого легко пройдет через прокси. SSH не у всех открыт.

    Reply
  4. user816558

    root@ПромежуточныйСервер. — лучше заменить на что то специально созданное, вроде: пользователь_ссш_на_промежуточном_сервере@ПромежуточныйСерве­р.

    Под рутом это делать как то неправильно,ИМХО.

    Reply
  5. Sedaiko

    (4) Согласен. В продакшине отдельные юзверы созданы. Скрины просто во время отладки снял.

    Reply
  6. DonAlPatino

    (2)ну почему. Есть у меня тут один клиент, который открытый 1С в мир не хочет, безопасность хочет, а ставить VPN-клиенты (типа opnvpn или cisco anyconnect )по причине возможно двунаправленного трафика запрещено. Наверное как раз тот «странный» случай. К sshd и двухфакторку типа Google Authenticator прикрутить можно…

    Reply
  7. independ

    Несколько лет назад, делал через freesshd проброс RDP на windows, работало стабильно

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *