VNC vino через SSH туннель ТОЛЬКО

Я искал несколько часов, не могу понять это.

Я пытаюсь сделать следующее:

Клиент: remmina + ssh tunnel

Сервер: Lubuntu + сервер openssh (аутентификация с открытым ключом) + сервер vino только через туннель ssh + разрешить клиенту открывать только 1 порт (порт vnc)

Пока что я могу подключиться к своему серверу, очевидно, обоими способами (с ssh-туннелем и без него), что недопустимо.

Запуск графического интерфейса с настройками vino мне особо не помогает:s

Так что мой вопрос в основном таков:

  • "Как заблокировать любое открытие порта на сервере и только один порт SSH (22) и разрешить клиенту туннелировать VNC через SSH через определенный порт (если это имеет смысл)?"
  • Никакой другой тип соединения VNC не должен быть разрешен

PS Я планирую перенаправить порт 22 маршрутизатора на мой сервер и разрешить только SSH-соединения.

1 ответ

Решение

AFAIK vino-preferences GUI не включает его, но я считаю, что параметр, который вы ищете, это network-interface

gsettings get org.gnome.Vino network-interface

Если не установлено (то есть приведенная выше команда возвращает пустую строку, '') тогда vino-сервер прослушивает все доступные интерфейсы, тогда как если установлено lo

gsettings set org.gnome.Vino network-interface 'lo'

тогда он будет слушать только на lo (localhost) интерфейс.

Вы также можете использовать графический интерфейс dconf-editorгде параметр указан под org -> gnome -> desktop -> remote-access вещь.


Вы можете подтвердить, что сервер прослушивает нужный интерфейс, используя netstat например, по умолчанию

$ sudo netstat -nlp | grep ':5900'
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      10927/vino-server
tcp6       0      0 :::5900                 :::*                    LISTEN      10927/vino-server

(прослушивание на всех доступных интерфейсах); затем после

$ gsettings set org.gnome.Vino network-interface 'lo'

Вы должны увидеть, что он прослушивает только интерфейс (ы) localhost:

$ sudo netstat -nlp | grep ':5900'
tcp        0      0 127.0.0.1:5900          0.0.0.0:*               LISTEN      10927/vino-server
tcp6       0      0 ::1:5900                :::*                    LISTEN      10927/vino-server

В качестве альтернативы (или дополнительно) вы можете использовать iptables или же ufw закрыть порт - по умолчанию это порт 5900 + номер дисплея.

Другие вопросы по тегам