Меню Рубрики

Установка vnc server debian

Установка VNC сервера, и настройка его работы поверх SSH


Да, отчего-то не все клиенты хотят работать в таком удобном и черном терминале, панель полностью не удовлетворяет их эстетические потребности, и вообще — «где мой такой любимый и удобный VNC?».
вопрос привычки и вкуса

В данной статье будет рассмотрен пример установки и настройки VNC server и графической оболочки (GUI) на примере OC Debian 8 jessie.

Вводная: на руках имеется чистый Debian 8 и жгучее желание получить на выходе защищенный vnc-доступ к серверу.

Приступим

Обновим список доступных пакетов.

Если система свежеустановленная — стоит обновиться.

(!)Бездумно запускать данную команду не на свежеустановленном сервере не стоит, чревато сломанными зависимостями и перспективой работы напильником.

Устанавливаем Xfce и VNC server (любители GNOME, KDE, LXDE, etc. устанавливают оболочку по своему вкусу).

Создаем пользователя от которого будем запускать vnc сервер.

Устанавливаем sudo (в Debian данный пакет не установлен по умолчанию).

Добавляем пользователя vnc в группу sudo.

Переходим под пользователя vnc.

Если это первый запуск vnc сервера, будет создан конфиг файл и запрошены некоторые параметры:

по умолчанию порт vnc сервера будет 5901, порт каждого следующего дисплея будет увеличиваться на 1 (5902,5903. ).

Проверить запущен ли VNC сервер и на каком порту слушает можно следующей командой.

Убить конкретный дисплей можно так:

:1 — какой дисплей нужно убить.

Создание скрипта автостарта vnc сервера.

Сначала убьем запущенный дисплей :1 (если он запущен).

Добавляем следующие строки в файл:

если требуется — в скрипте можно изменить глубину цвета или разрешение экрана.

использование созданного нами скрипта:

Теперь нужно позаботиться о том, чтобы настроенный нами vnc стартовал после загрузки сервера (запланированной и не очень).
Для этого создаем файл по следующему пути.

Добавляем следующий текст в файл:

[Unit] — указываем описание скрипта (так же можно указать требуемые зависимости и порядок запуска при загрузке).
[Service] — указываем какими командами запускать сервис, под каким пользователем, и тип сервиса.
[Install] — указываем на каком уровне должен запускаться скрипт (runlevel 3 — многопользовательский режим без графики).

Включаем юнит в автозагрузку при старте системы.

Смотрим статус созданного нами юнита.

Дергаем systemd для поиска новых или измененных юнитов.

Шифрование трафика

Голый VNC не шифрует трафик, и оставлять его в таком виде не стоит.
Кроме того, если на Ваш IP выйдут боты из Китая и начнут стучатся по портам, даже если пароль установлен действительно качественный (учтите, что пароль на vnc сессию ограничен 8 символами) и его не взломают, попасть на сервер посредством VNC будет затруднительно, из-за постоянной ошибки на количество неверных попыток авторизации.

Using password file /home/vnc/.vnc/passwd

Warning: password truncated to the length of 8.

Would you like to enter a view-only password (y/n)? n

Пускаем VNC поверх SSH:

Теперь для подключения к серверу сначала нужно создать тунель.

Под *nix:

Теперь возможно подключение посредством vnc клиента, указав вместо IP удаленного сервера localhost и порт на котором слушает vnc-server.

При использовании Windows и putty агента:

После запуска putty переходим Connection -> SSH -> Tunnels.
В поле Source Port вбиваем порт на котором слушает VNC сервер — 5901, в поле Destination вписываем — localhost:5901 и жмем кнопку Add.
должно получиться как на картинке.

Теперь возвращаемся на вкладку Session вписываем IP сервера и порт 22 (тут же можно и сохранить конфигурацию подключения), жмем Open.

паранойи мало не бывает К осторожности нужно приучать сразу, хоть теперь и попасть на наш сервер посредством VNC извне невозможно (для начала нужно залогиниться по ssh и создать тунель), все же стоит задуматься о дополнительной безопасности ssh подключений (помните — китайские боты не дремлют).

Установим и настроим fail2ban.
По умолчанию защита от брутфорса для SSH включена, что нам собственно и требуется.
при превышении заданного числа неудачных вводов пароля подряд (по умолчанию — 6) бан IP, с которого были попытки подбора на заданное время (по умолчанию — 600 секунд).

Устанавливаем пакет из репозитория.

Основной интересующий нас файл настроек находится по пути /etc/fail2ban/jail.conf

Блок настроек для подключения по ssh:

ignoreip — IP адреса, которые не должны быть заблокированы. Можно задать список IP адресов разделённых пробелами, маску подсети, или имя DNS сервера.

bantime — время бана в секундах, по истечении которого IP адрес удаляется из списка заблокированных.

maxretry — количество подозрительных совпадений, после которых применяется правило. В контексте ssh — это число неудавшихся попыток логина, после которых происходит блокировка.

enabled — значение true указывает что данный jail активен, false выключает действие изолятора.

port — указывает на каком порту или портах запущен целевой сервис. Стандартный порт SSH сервера — 22, или его буквенное наименование — ssh.

filter — имя фильтра с регулярными выражениями, по которым идёт поиск «подозрительных совпадений» в журналах сервиса. Фильтру sshd соответствует файл /etc/fail2ban/filter.d/sshd.conf.

logpath — путь к файлу журнала, который программа Fail2ban будет обрабатывать с помощью заданного ранее фильтра. Вся история удачных и неудачных входов в систему, в том числе и по SSH, по умолчанию записывается в log файл /var/log/auth.log.

Читайте также:  Установка иконки в браузере

Дефолтная настройка удовлетворяет наши требования (6 неверных попыток авторизации по shh и IP летит в бан на 600 секунд), но я бы советовал добавить свой IP в доверенный список.
Обидно будет ждать почти два часа, в случае шестикратной ошибки ввода пароля со своего IP (шанс данного кейса отнюдь не нулевой).

В строке ignoreip = 127.0.0.1/8, адрес 127.0.0.1/8 заменяем на свой IP.

Выходим из редактора nano (ctrl+x, отвечаем y на вопрос сохранения внесенных изменений).

Перегружаем сервис для применения изменений в правилах.

В случае срабатывания бана в логах fail2ban, можно заметить строку предупреждения:

И попытки подключения с данного адреса будут отбиваться сервером автоматически до истечения срока бана.

Готово, настройка VNC сервера завершена.

источник

linux-notes.org

Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint

Virtual Network Computing (VNC) — система для подключения к рабочему столу удаленно используя протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер).

VNC состоит из VNC-клиента, который называется VNC viewer, он только запущен на одной ОС и можно подключаться к VNC-серверу который работает на другой операционной системе. Реализация клиентской и серверной части есть почти для всех ОС, даже для Java (которая включает J2ME). На один VNC-сервер одновременно могут быть подключены большое множество клиентов. Наиболее популярный способ использования VNC — это удалённое подключение к рабочему компьютеру из дома для технической поддержки вашего сервера. В своей статье «Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint» я расскажу как это можно сделать.

Чтобы установить VNC, достаточно выполнить команду:

Вы можете использовать любого пользователя для входа в свой VNC Server, но по соображениям безопасности, я собираюсь создать VNC пользователя для моего VNC Server-а:

Устанавливаем для него пароль:

Теперь переключимся на этого пользователя (vncuser) для создания некоторых конфигурационных файлов для VNC:

После этого, запускаем VNC сервер:

После запуска VNC-сервера, вам будет предложено создать VNC пароль. Устанавливаем любой удобный для вас пароль, но не более 9 символов ( если больше, то он обрежит его).

На рисунке ниже видно как стартанул наш vnc сервер, но нам его нужно немного подредактировать:

Чтобы сделать настройку в сценарие запуска, мы должны убить сессию, что мы только что создали:

После чего нужно открыть и поправить файл конфигурации:

Измените немного конфигурацию по вашему усмотрению ( у меся я поправил разрешение экрана), мой готовый конфигурационный файл я выложил и прочитать его можно тут, чтобы скачать используйте команду:

После чего запускаем нашу сессию с разрешением экрана 1024×600:

Установка Gnome X Window для Ubuntu (на стороне клиента, можно установить и другую среду):

Вот еще моя статья как установить другую графическую оболочку:
Установка GUI на Debian/Ubuntu/Mint

PS: не забываем прописывать нужную строку в конфиг xstartup.

Если вы решите использовать другие графические интерфейсы:

Для Gnome-Desktop Environment

Для KDE-Desktop Environment

Для MATE-Desktop Environment

Для LXDE-Desktop Environment

Для Cinnamon-Desktop Environment

Для Openbox-Desktop Environment

Я собрал это все до кучи и закоментировал не нужные строки, оставил только gnome, т.к я его устанавливал. Вы можете скачать данный конфиг и отредактировать его для настройки своего VNC сервера (для своего графического интерфейса):

Я приведу пример со своим использованием, я юзаю windows 8, по этому я скачал vnc- viewer.

Использование VNC Viewer для просмотра и управления VNC-сервера с удаленного хоста.

Перед тем как использовать vnc-viewer, нужно его скачать. После чего запускаем его и вводим в поле IP адрес хоста (у меня это сделать не получилось и не знаю по чему), я использую виртуальную машину, по этому я ввел следующее:
ubuntu:1

Открылось окно и я ввел свой пароль, который я вводил (создал) немного выше. Вот и все, работает все)

После перезагрузки сервера, мы не будем иметь возможность подключиться к серверу с VNC, это потому, что команда «vncserver -geometry 1024×600» , что мы набрали выше не является постоянным. Чтобы решить эту проблему, я будем использовать отличный сценарий Джастин Buser.

Для начала создадим следующее:

Затем создайте пустой сценарий инициализации и сделайте его исполняемым:

И добавьте текст который можно найти и прочитать тут, так же можете просто его скачать и разместить у себя ( только не забудьте сделать его исполняемым):

Сейчас перезапустим наш сервер:

Если вы не можете получить доступ к VNC-сервера, то убедитесь, что вы открыли порты VNC в IPTables:

если не открыли, то открываем их:

и сохраняем все изменения:

Делаем возможность подключения для нескольких пользователей.

Создание локального пользователя, с помощью следующей команды:

Переключитесь на вновь созданного пользователя и запустить этого vncserver командой:

vncserver для дополнительного сервера

Перейдем в домашнюю директорию и отредактируем файл XStartup:

и вставляем в этот файл тоже самое что и для моего первого юзера, берем его от сюда.

Читайте также:  Установка aptitude в kali linux

Теперь откройте файл /etc/vncserver/vncservers.conf как рут пользователь:

Добавим в уже имеющийся конфиг:

Предотвращение запуск Gnome при загрузке на сервере.

Гном автоматически запускается при загрузке в Ubuntu 12.04 LTS, если мы подключить монитор к нашему серверу мы увидим, что GUI запустился и ждет чтобы мы вошли, это не очень удобно. Сейчас мы это исправим. Чтобы это предотвратить нужно отредактировать файл gdm.conf:

Нужно в этом файле конфигурации закомментировать 6 строчек:

VNC шифрование через ssh туннель

По умолчанию, VNC не является безопасным протоколом, по этому (так безопаснее) мы запустим сервер VNC только на 127.0.0.1 (локальный) и пробросим его через туннель SSH (для этого, есть варианты в Putty).

В Ubuntu нужно отредактировать:

Нужно добавить опцию «-localhost»

проксирование vnc-server на localhost

Запустите PuTTY/ Kitty, введите IP-адрес или имя хоста сервера VNC:

использование vnc через kitty

Переходим на другую вкладку, Session->Connection->SSH.

использование vnc через kitty, настройка

Через команду можно посмотреть что все работает:

После чего уже запускаем непосредственно, vnc viewer и прописываем заместо нашего реального ИП, localhost:1 (или 2). Вводим пароль и можно использовать.

Надеюсь что эта статья «Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint» помогла вам и на этом я закончу ее.

4 thoughts on “ Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint ”

Все настроил как тут описано, но в итоге после отключения завершается сеанс, это очень не удобно.
Как сделать что бы он не завершался

Я думаю что Вы не прописали (добавили) автозапуск vncserver-а.

# update-rc.d vncserver defaults 99
# service vncserver restart

А не подскажете, как лучше настроить сервер, для того что бы клиент мог работать на двух мониторах? Находил решение удвоить значение width в geometry (например, два монитора по 1024×800, то значение -geometry 2048×800, в фулскрин-моде ложится на два монитора). А вот если мониторы разные?

Удвоить длину наименьшего монитора.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

источник

Contents

Share

Sign up for our newsletter.

Get the latest tutorials on SysAdmin and open source topics.

Related

Установка и настройка VNC на сервере Debian 9

Введение

Virtual Network Computing или VNC — это система подключения, позволяющая использовать клавиатуру и мышь для взаимодействия с графической средой рабочего стола на удаленном сервере. Данная система упрощает управление файлами, программным обеспечением и настройками на удаленном сервере для пользователей, которые еще не очень знакомы с управлением через командную строку.

С помощью этого обучающего модуля вы научитесь настраивать сервер VNC на сервере Debian 9 и подключаться к нему через защищенный туннель SSH. Мы будем использовать TightVNC, быстрый и компактный пакет дистанционного управления. Благодаря этому наше соединение VNC будет стабильным и удобным даже при низкой скорости подключения к интернету.

Предварительные требования

Для завершения данного обучающего модуля вам потребуется:

  • Один сервер Debian 9, настроенный в соответствии с указаниями руководства по начальной настройке сервера Debian 9, в том числе с брандмауэром и пользователем без привилегий root и с привилегиями sudo .
  • Локальный компьютер с клиентом VNC, поддерживающий соединения VNC через туннели SSH.
    • В Windows вы можете использовать TightVNC, RealVNC или UltraVNC.
    • В macOS вы можете использовать встроенную программу Screen Sharing или кросс-платформенное приложение, например RealVNC.
    • В Linux вы можете использовать разные решения, в том числе vinagre , krdc , RealVNC, или TightVNC

Шаг 1 — Установка среды рабочего стола и сервера VNC

По умолчанию сервер Debian 9 поставляется без графической среды рабочего стола и без сервера VNC, так что для начала мы их установим. В частности, мы установим пакеты новейшей среды рабочего стола Xfce и пакет TightVNC, доступный в официальном хранилище Debian.

Обновите список пакетов на своем сервере:

Установите на свой сервер среду рабочего стола Xfce:

Во время установки вам будет предложено выбрать раскладку клавиатуры из списка возможных вариантов. Выберите наиболее подходящий для вашего языка вариант и нажмите ENTER . После этого установка будет продолжена.

После завершения установки установите сервер TightVNC:

Для завершения начальной настройки сервера VNC после установки используйте команду vncserver , чтобы задать безопасный пароль и создать начальные файлы конфигурации:

Вам будет предложено ввести и подтвердить пароль для удаленного доступа к системе:

Пароль должен иметь длину от 6 до 8 символов. Пароли длиной более 8 символов будут автоматически обрезаны.

После подтверждения пароля вы сможете создать пароль только для просмотра. Пользователи, входящие с паролем только для просмотра, не смогут контролировать экземпляр сервера VNC с помощью мыши или клавиатуры. Это полезная возможность, если вам нужно что-то продемонстрировать с помощью сервера VNC, однако использовать ее необязательно.

Затем процесс создает необходимые файлы конфигурации по умолчанию и данные подключения для сервера:

Теперь настроим сервер VNC.

Шаг 2 — Настройка сервера VNC

Сервер VNC должен знать, какие команды следует выполнять при запуске. В частности, VNC должен знать, к какому графическому рабочему столу следует подключиться.

Читайте также:  Установка датчика давления масла на фольксваген

Эти команды находятся в файле конфигурации xstartup в папке .vnc в каталоге home. Сценарий startup был создан при запуске vncserver на предыдущем шаге, однако мы создадим собственный сценарий для запуска рабочего стола Xfce.

При начальной настройке VNC запускается экземпляр сервера по умолчанию на порту 5901 . Этот порт называется портом дисплея и учитывается VNC как :1 . Возможен запуск нескольких экземпляров VNC на других портах дисплея, в том числе :2 , :3 и т. д.

Поскольку мы изменяем настройку сервера VNC, вначале нужно остановить экземпляр сервера VNC, работающий на порту 5901 , с помощью следующей команды:

Результат должен выглядеть следующим образом, хотя вы увидите другой PID:

Прежде чем изменять файл xstartup , следует создать резервную копию исходного файла:

Создайте новый файл xstartup и откройте его в текстовом редакторе:

Команды из этого файла автоматически выполняются при запуске или перезапуске сервера VNC. Сервер VNC должен запустить нашу среду рабочего стола, если она еще не запущена. Добавьте в файл следующие команды:

Первая команда в файле, xrdb $HOME/. Xresources указывает системе графического интерфейса VNC прочитать файл пользователя сервера . Xresources . В файле Xresources пользователь может изменять определенные параметры графического рабочего стола, такие как цвета терминала, темы курсора и рендеринг шрифтов. Вторая команда указывает серверу запустить пакет Xfce, включающий все графическое программное обеспечение для удобного управления сервером.

Чтобы сервер VNC мог использовать новый файл startup, нужно сделать его исполняемым.

Результат будет выглядеть примерно так:

Завершив настройку, подключимся к серверу с локального компьютера.

Шаг 3 — Безопасная настройка рабочего стола VNC

Сервер VNC не использует защищенные протоколы при подключении. Мы используем туннель SSH для безопасного подключения к серверу, а затем укажем клиенту VNC использовать этот туннель, а не создавать прямое соединение.

Создайте на локальном компьютере соединение SSH, которое безопасно перенаправляется в соединение localhost для VNC. Для этого можно ввести черех терминал в Linux или macOS следующую команду:

Опция -L указывает на привязку портов. В данном случае мы привязываем порт 5901 удаленного подключения к порту 5901 локального компьютера. Опция -C активирует сжатие, а опция -N указывает ssh , что мы не хотим выполнять удаленную команду. Опция -l указывает имя для удаленного входа в систему.

Не забудьте заменить sammy и your_server_ip именем пользователя sudo без привилегий root и IP-адресом вашего сервера.

Если вы используете графический клиент SSH (например, PuTTY), используйте your_server_ip как IP-адрес для подключения, и задайте localhost:5901 как новый порт переадресации в настройках туннеля SSH программы.

После запуска туннеля используйте клиент VNC для подключения к localhost:5901 . Вам будет предложено пройти аутентификацию, используя пароль, заданный на шаге 1.

После подключения вы увидите рабочий стол Xfce по умолчанию.

Выберите пункт «Использовать конфигурацию по умолчанию» для быстрой настройки системы.

Для доступа к файлам в каталоге home вы можете использовать менеджер файлов или командную строку, как показано здесь:

Нажмите CTRL+C на локальном компьютере, чтобы остановить туннель SSH и вернуться к командной строке. При этом сеанс VNC также будет отключен.

Теперь мы настроим сервер VNC как службу.

Шаг 4 — Запуск VNC в качестве системной службы

Далее мы настроим сервер VNC как системную службу, которую мы сможем запускать, останавливать и перезапускать как любую другую службу. Это также обеспечит запуск VNC при перезагрузке вашего сервера.

Создайте новый файл блока с именем /etc/systemd/system/vncserver@.service в своем любимом текстовом редакторе:

Символ @ позволит нам передать аргумент, который мы сможем использовать при настройке службы. Мы будем использовать его, чтобы задать порт дисплея VNC, который хотим использовать при управлении службой.

Добавьте в файл следующие строки. Оюязательно измените значения параметров User, Group, WorkingDirectory и username на значения PIDFILE, соответствующие вашему имени пользователя:

Команда ExecStartPre останавливает сервер VNC, если он уже запущен. Команда ExecStart запускает VNC и устанавливает 24-битную глубину цвета с разрешением 1280×800. Вы можете изменить эти параметры запуска в соответствии со своими потребностями.

Сохраните и закройте файл.

Затем сообщите системе о новом файле блока.

Цифра 1 после символа @ указывает, на каком дисплее должна появляться служба. В данном случае это значение по умолчанию :1 , как говорилось на шаге 2.

Остановите текущий экземпляр сервера VNC, если он еще работает.

Запустите его, как любую другую системную службу.

Вы можете проверить запуск с помощью следующей команды:

Если запуск выполнен нормально, результат должен выглядеть следующим образом:

Теперь сервер VNC будет доступен при перезагрузке компьютера.

Запустите туннель SSH еще раз:

Создайте новое подключение, используя клиентское программное обеспечение VNC для подключения localhost:5901 к вашему компьютеру.

Заключение

Теперь вы настроили и запустили защищенный сервер VNC на своем сервере Debian 9. Теперь вы сможете управлять файлами, программным обеспечением и настройками через удобный и знакомый графический интерфейс, а также удаленно запускать графические приложения, в том числе браузеры.

источник

Добавить комментарий

Adblock
detector