- Установка VNC сервера, и настройка его работы поверх SSH
- Приступим
- Создание скрипта автостарта vnc сервера.
- использование созданного нами скрипта:
- Шифрование трафика
- Пускаем VNC поверх SSH:
- При использовании Windows и putty агента:
- Инструкция по TigerVNC для Windows
- TigerVNC
- Установка TigerVNC
- Управление службой TigerVNC
- Ярлыки TigerVNC
- Панель управления TigerVNC
- Настройка сервера TigerVNC
- Быстрый старт с TigerVNC
- Как пользоваться TigerVNC
- Как удалить TigerVNC
Установка 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 сервера, будет создан конфиг файл и запрошены некоторые параметры:
по умолчанию порт 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 сервера завершена.
Инструкция по TigerVNC для Windows
TigerVNC
TigerVNC — это также клиент-сервер VNC.
TigerVNC — это высокопроизводительная, независимая от платформы реализация VNC (Virtual Network Computing), клиент-серверного приложения, которое позволяет пользователям запускать и взаимодействовать с графическими приложениями на удалённых компьютерах. TigerVNC обеспечивает уровни производительности, необходимые для запуска 3D и видео приложений, и он пытается поддерживать общий внешний вид и повторно использовать компоненты, где это возможно, на различных платформах, которые он поддерживает. TigerVNC также предоставляет расширения для продвинутых методов аутентификации и шифрования TLS.
Установка TigerVNC
Скачать TigerVNC: https://github.com/TigerVNC/tigervnc/releases. На этой странице будет доступна ссылка на сайт с бинарными файлами, перейдите на него:
Если вам нужен клиент и сервер, то скачайте файл вида tigervnc64-*.exe, если вам нужен только клиент, то скачайте vncviewer64-*.exe.
Обратите внимание на скачиваемую версию. В версии TigerVNC 1.10.1 имеется баг, из-за которого сервер VNC не работает, а именно не принимает входящие соединения даже если пароль был введён правильно, на Linux клиент при попытке подключиться к серверу TigerVNC 1.10.1 выдаёт сообщение:
Если на момент скачивания стабильной версией является 1.10.1, то скачайте ночную сборку по ссылке: http://tigervnc.bphinz.com/nightly/. На момент написания ошибка в ночной сборке исправлена.
Во время установки программа предлагает:
- Register new TigerVNC Server as a system service — зарегистрировать новый сервер TigerVNC как системную службу
- Start or restart TigerVNC service — запустить или перезапустить службу TigerVNC
Управление службой TigerVNC
Для проверки статуса службы:
Для отключения службы (включится после перезагрузки)
Для включения службы
Ручное включение службы:
Отключение службы (при загрузке компьютера служба не включится):
Автоматическое включение службы (служба включится при загрузке компьютера):
Ярлыки TigerVNC
После установки программа создаёт много ярлыков в меню Пуск:
VNC сервер (в режиме службы)
- Configure VNC Service — настройка службы VNC
- Register VNC Service — регистрация службы VNC
- Start VNC Service — запуск службы VNC
- Stop VNC Service — остановка службы VNC
- Unregister VNC Service — отмена регистрации службы VNC
VNC сервер (пользовательский режим)
- Configure VNC Server — настройка сервера VNC
- Run VNC Server — запуск сервера VNC
- Listening TigerVNC Viewer — просмотрщик TigerVNC в режиме прослушивания
- TigerVNC Viewer — просмотрщик TigerVN
Эти же ярлыки вы найдёте в папке C:\ProgramData\Microsoft\Windows\Start Menu\Programs\TigerVNC 64-bit\
Панель управления TigerVNC
При клике правой кнопкой мыши на иконку сервера TigerVNC в системном трее рядом с часами, открывается следующее контекстное меню:
- Control Panel — панель управления
- Options — опции
- Add New Client — добавить нового клиента
- Disconnect Clients — отключить клиента
- Close VNC Server — закрыть сервер VNC
Панель управления содержит список подключённых клиентов и их статус (например, Full control — полный контроль и View-only — режим только просмотра):
Здесь вы можете выполнить следующие действия:
- View-only — ограничить выбранного клиентом только возможностью просмотра
- Full control — предоставить выбранному клиенту полный контроль
- Stop updating — остановить обновление экрана для клиента
- Kill Clients — отключить клиентов
- Properties — свойства (настройки) подключения
- Add New Client — добавить нового клиента
- Kill All Clients — отключить всех клиентов
- Disable New Clients — отключить возможность подключения новых клиентов
Настройка сервера TigerVNC
Кликните правой кнопкой мыши на иконку сервера TigerVNC в системном трее рядом с часами и выберите Options — опции:
Перейдите на вкладку Security (безопасность)
В группе Authentication (аутентификация) нажмите на кнопку Configure — настройка пароля (нажмите на кнопку и введите 2 раза пароль)
Быстрый старт с TigerVNC
Если вы хотите запустить сервер TigerVNC, то нажмите Run VNC Server или Start VNC Service. Зайдите в настройки и установите пароль: Authentication → Standard VNC →Configure.
Сообщите ваш IP адрес тем, кто должен подключиться к вашему VNC серверу.
Если вы хотите подключиться к серверу с помощью клиента TigerVNC, то запустите TigerVNC Viewer.
Введите IP адрес VNC сервера:
Как пользоваться TigerVNC
Нажмите клавишу F8 для вызова меню с действиями:
- Exit viewer — выйти из просмотрщика
- Full screen — полноэкранный режим
- Minimize — минимизировать окно просмотрщика
- Resize window to session — изменить размер окна в сеансе
- Ctrl — зажатая клавиша Ctrl
- Alt — зажатая клавиша Alt
- Send F8 — отправить F8
- Send Ctrl+Alt+Del — отправить Ctrl+Alt+Del
- Refresh screen — обновить экран
- Options — опции
- Connection info — информация о соединении
Для перехода в полноэкранный режим комбинациями клавиш нажмите F8 → SHIFT+V
Для вызова опций нажмите F8 → O
Как удалить TigerVNC
Начните с запуска ярлыка Unregister VNC Service для удаления службы, если вы её регистрировали. Затем удалите TigerVNC как любое другое приложение.