Содержание

Skip to end of metadata
Go to start of metadata

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Common Edition 2.12.43

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

Особенности работы с клавиатурой

  • Если при подключенном VNC-клиенте (удаленном помощнике) переключить раскладку клавиатуры на стороне VNC-сервера, то пропадает возможность ввода с клавиатуры на клиенте Remmina. В таком случае восстановить возможность ввода можно повторной сменой раскладки с помощью переключателя клавиатуры в трее на клиенте;

  • Если производить изменение раскладки на VNC-клиенте (Remmina) сочетанием клавиш (Alt+Shift), то переключение раскладки отрабатывает корректно;

  • Если производить изменение раскладки на VNC-клиенте (Remmina) переключателем клавиатуры в трее, то ввод с клавиатуры не работает.

Подготовка стенда

Создать локального пользователя luser, которому "помогают", и задать ему пароль 123luser:

sudo useradd -m luser
echo -e "123luser\n123luser" | sudo passwd luser

Создать локального пользователя helper, который "помогает", и задать ему пароль 123helper:

sudo useradd -m helper
echo -e "123helper\n123helper" | sudo passwd helper

Создать группу, которой разрешено подключение и включить в эту группу пользователя-"помощника":

sudo addgroup vnc-help
sudo usermod -aG vnc-help helper

tigervnc-scraping-server

Установить пакет:

sudo apt install -y tigervnc-scraping-server

Создать файл /etc/access-groups-to-help, содержащий список групп, пользователям-участникам которых разрешено подключение (в примере - одна группа vnc-help). Настроить PAM-стек, добавив в него модуль pam_listfile.so, выполняющий проверку участия в группе из  списка /etc/access-groups-to-help:

echo "vnc-help" | sudo tee /etc/access-groups-to-help
sudo sed -i "/@include common-auth/a account required pam_listfile.so onerr=fail item=group sense=allow file=/etc/access-groups-to-help" /etc/pam.d/tigervnc

Так как для использования PAM-стека сервер VNC должен быть запущен от sudo:

  1. Создать сценарий запуска сервера:

    echo -e '#!/bin/bash\nsudo x0tigervncserver SecurityTypes=TLSPLain PlainUsers=* PAMService=tigervnc' | sudo tee /bin/rhelp
    sudo chmod 711 /bin/rhelp

  2. Разрешить запуск созданного сценария с привилегиями суперпользователя (разрешить запуск с использованием sudo):

    echo "ALL ALL=(root) NOPASSWD: /bin/rhelp" | sudo tee /etc/sudoers.d/rhelp


Отключение удаленного помощника пользователем

Сценарий для принудительного отключения удаленного помощника пользователем (и для запрета дальнейших подключений) может быть реализован аналогичным способом. При этом можно использовать опцию -kill, останавливающую работающий VNC-сервер, подключенный к текущей графической сессии. Пример последовательности команд, создающей и настраивающей сценарий отключения:

echo -e '#!/bin/bash\nsudo x0tigervncserver -kill' | sudo tee /bin/rstop
sudo chmod 711 /bin/rstop
echo "ALL ALL=(root) NOPASSWD: /bin/rstop" | sudo tee /etc/sudoers.d/rstop

Проверка

  1. Войти в графическую сессию пользователя luser;

  2. Запустить VNC-сервер из сессии пользователя luser:

    sudo rhelp

  3. Подключиться с другой машины с помощью remmina от имени пользователя helper, протокол VNC, порт 5900 для сессии первого пользователя (vt7), 5901 для второго (vt8) и т.д. (однако при этом в remmina корректно отображается только экран активной сессии);

  4. Отключить удаленного пользователя, выполнив в локальной сессии команду:

    sudo rstop

  • No labels