Bug 54823

Summary: neatvnc собран без поддержки криптографии
Product: Sisyphus Reporter: Olga <urozhaevaoo>
Component: neatvncAssignee: Yuri N. Sedunov <aris>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, aris
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Backtrace падения none

Description Olga 2025-06-17 16:12:37 MSK
Created attachment 18849 [details]
Backtrace падения

Версия программы:
=================
wayvnc-0.9.1-alt1

Стенды с ошибкой, обновлен. до Sisyphus:
========================================
Alt Workstation 11
Alt Workstation K 11

Прекондишен:
============
1. Установить пакеты на сервере:
# apt-get install waybar swaybg kanshi mako swayidle libscenefx1 labwc labwc-base firefox-esr yandex-browser-stable qterminal wayvnc-y 
2. Скопировать в домашний каталог файлы настройки : 
$ cp -r /usr/share/doc/labwc .config/
3. Отредактировать конфигурационные файлы в папке /usr/share/doc/labwc:
$ cat > enviroment << EOF
XKB_DEFAULT_LAYOUT=ru,us(intl)
XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle
MOZ_ENABLE_WAYLAND=1
XCURSOR_THEME=Adwaita
XCURSOR_SIZE=20
WLR_NO_HARDWARE_CURSORS=1
_JAVA_AWT_WM_NONREPARENTING=1
XDG_CURRENT_DESKTOP=wlroots
XDG_SESSION_DESKTOP=wlroots
XDG_SESSION_TYPE=wlroots
LABWC_FALLBACK_OUTPUT=NOOP-fallback
EOF

menu.xml
$ cat > menu.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>

<openbox_menu>
<!-- Меню на заголовке окна -->
<menu id="client-menu">
  <item label="Minimize">
    <action name="Iconify" />
  </item>
  <item label="Maximize">
    <action name="ToggleMaximize" />
  </item>
  <item label="Fullscreen">
    <action name="ToggleFullscreen" />
  </item>
  <item label="Decorations">
    <action name="ToggleDecorations" />
  </item>
  <item label="AlwaysOnTop">
    <action name="ToggleAlwaysOnTop" />
  </item>
  <!--
    Any menu with the id "workspaces" will be hidden
    if there is only a single workspace available.
  -->
  <menu id="workspaces" label="Workspace">
    <item label="Move left">
      <action name="SendToDesktop" to="left" />
      <action name="GoToDesktop" to="left" />
    </item>
    <item label="Move right">
      <action name="SendToDesktop" to="right" />
      <action name="GoToDesktop" to="right" />
    </item>
  </menu>
  <item label="Close">
    <action name="Close" />
  </item>
</menu>

<!-- Меню на рабочем столе -->
<menu id="some-custom-menu">
  <item label="Firefox">
    <action name="Execute" command="firefox" />
  </item>
  <item label="Konsole">
    <action name="Execute" command="qterminal" />
  </item>
  <item label="Yandex-Browser">
    <action name="Execute" command="yandex-browser-stable" />
  </item>
  <item label="____________"></item>
    <menu id="Other" label="Other">
    <item label="LibreOffice">
      <action name="Execute" command="libreoffice" />
    </item>
  </menu>
  <item label="____________"></item>
  <item label="Reconfigure">
    <action name="Reconfigure" />
  </item>
  <item label="Exit">
    <action name="Exit" />
  </item>
  <item label="Poweroff">
    <action name="Execute" command="systemctl -i poweroff" />
  </item></menu>

</openbox_menu>

EOF

Шаги, приводящие к ошибке:
==========================
1. Создать конфиг на сервере:
$ mkdir /home/test/.config/wayvnc && cat> /home/test/.config/wayvnc/config <<EOF
use_relative_paths=true
address=<IP>
enable_auth=true
username=<username>
password=<password>
EOF
2. В графическом сеансе сервера запустить labwc : 
$ labwc
3. В открывшейся сессии ПКМ по рабочему столу -> Konsole -> В консоли ввести:
$ wayvnc --config=/home/test/.config/wayvnc/config
4. Подключиться к серверу с клиента:
$ remmina -c vnc://<IP>:5900
или
$ vncviewer <IP>:5900

Ожидаемый результат:
====================
Корректное подключение к рабочему столу

Фактический результат:
======================
Не удалось подключиться к рабочему столу. 
На клиенте при подключении с помощью Remmina: VNC server closed connection
На клиенте при подключении с помощью TigerVNC: Не удалось подключиться к <IP:Port>
На сервере падает Wayvnc с ошибкой:
PANIC: ../src/server.c: 293: Failed to satisfy requested security constraints 
Прикладываю backtrace падения
Comment 1 Антон Мидюков 2025-06-17 18:17:41 MSK
Если заглянуть в man:

enable_auth

Enable authentication and encryption. Setting this value to true requires also setting certificate_file, private_key_file, username and password.

То есть нужно настраивать шифрованное соединение обязательно:
https://github.com/any1/wayvnc?tab=readme-ov-file#encryption--authentication
Comment 2 Olga 2025-06-18 13:05:20 MSK
Согласно README https://github.com/any1/wayvnc/blob/master/README.md#rsa-aes, поддерживается RSA-AES шифрование. Однако не удается загрузить учетные данные RSA.

Шаги для воспроизведения:
=========================
1.Необходимо сгенерировать RSA key:
$ ssh-keygen -m pem -f ~/.config/wayvnc/rsa_key.pem -t rsa -N ""
2. Создать конфиг на сервере:
$ mkdir /home/test/.config/wayvnc && cat> /home/test/.config/wayvnc/config <<EOF
use_relative_paths=true
address=<IP>
enable_auth=true
username=<username>
password=<password>
rsa_private_key_file=rsa_key.pem
EOF
3. $ wayvnc --config=/home/test/.config/wayvnc/config

Реальный результат: 
===================
Не удается запустить wayvnc сервер:
ERROR: ../src/main.c: 962: Failed to load RSA credentials

Дополнительная информация:
==========================
При использовании TLS шифрования ошибка не воспроизводится, wayvnc запускается, успешное подключение к рабочему столу.
Comment 3 Антон Мидюков 2025-06-18 20:37:16 MSK
neatvnc собран без поддержки криптографии.
https://github.com/any1/neatvnc/blob/62912487621b402ca5a253fa4df7ddde0e8f66cd/meson.build#L159
Нужно добавить
BuildRequires: libnettle-devel
BuildRequires: libgmp-devel
Comment 4 Repository Robot 2025-06-18 21:10:54 MSK
neatvnc-0.9.4-alt1.1 -> sisyphus:

 Wed Jun 18 2025 Yuri N. Sedunov <aris@altlinux> 0.9.4-alt1.1
 - enabled nettle support (ALT #54823)