BSoD

Vnc удаленное подключение. VNC консоль — локальный доступ к виртуальному серверу. использование созданного нами скрипта



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

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


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

Приступим

Обновим список доступных пакетов.
# apt-get update
Если система свежеустановленная - стоит обновиться.
# apt-get -y upgrade
(!)Бездумно запускать данную команду не на свежеустановленном сервере не стоит, чревато сломанными зависимостями и перспективой работы напильником.

Устанавливаем Xfce и VNC server (любители GNOME , KDE , LXDE , etc. устанавливают оболочку по своему вкусу).
# apt-get install xfce4 xfce4-goodies tightvncserver
Создаем пользователя от которого будем запускать vnc сервер.
# adduser vnc
Устанавливаем sudo (в Debian данный пакет не установлен по умолчанию).
# apt-get install sudo
Добавляем пользователя vnc в группу sudo.
# gpasswd -a vnc sudo
Переходим под пользователя vnc.
# su - vnc
Запускаем vnc сервер.
$ vncserver
Если это первый запуск vnc сервера, будет создан конфиг файл и запрошены некоторые параметры:
$ vncserver You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n xauth: file /home/vnc/.Xauthority does not exist New "X" desktop is my.server:1 Creating default startup script /home/vnc/.vnc/xstartup Starting applications specified in /home/vnc/.vnc/xstartup Log file is /home/vnc/.vnc/my.server:1.log
по умолчанию порт vnc сервера будет 5901, порт каждого следующего дисплея будет увеличиваться на 1 (5902,5903,...).

Проверить запущен ли VNC сервер и на каком порту слушает можно следующей командой.
$ netstat -nltp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 1054/Xtightvnc
Убить конкретный дисплей можно так:
$ vncserver -kill:1 Killing Xtightvnc process ID 3246
:1 - какой дисплей нужно убить.

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

Сначала убьем запущенный дисплей:1 (если он запущен).
$ vncserver -kill:1
создаем скрипт запуска
Добавляем следующие строки в файл:

#!/bin/bash PATH="$PATH:/usr/bin/" DISPLAY="1" DEPTH="16" GEOMETRY="1024x768" OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}" case "$1" in start) /usr/bin/vncserver ${OPTIONS} ;; stop) /usr/bin/vncserver -kill:${DISPLAY} ;; restart) $0 stop $0 start ;; esac exit 0
если требуется - в скрипте можно изменить глубину цвета или разрешение экрана.

Делаем файл исполняемым.
$ sudo chmod +x /usr/local/bin/myvnc

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

$ myvnc start ###запустить vnc сервер $ myvnc stop ###остановить vnc сервер $ myvnc restart ###перезапустить vnc сервер

Теперь нужно позаботиться о том, чтобы настроенный нами vnc стартовал после загрузки сервера (запланированной и не очень).
Для этого создаем файл по следующему пути.
$ sudo nano /lib/systemd/system/myvnc.service

Добавляем следующий текст в файл:
Description=MyVnc Type=forking ExecStart=/usr/local/bin/myvnc start ExecStop=/usr/local/bin/myvnc stop ExecReload=/usr/local/bin/myvnc restart User=vnc WantedBy=multi-user.target

Пояснение

Указываем описание скрипта (так же можно указать требуемые зависимости и порядок запуска при загрузке).
- указываем какими командами запускать сервис, под каким пользователем, и тип сервиса.
- указываем на каком уровне должен запускаться скрипт (runlevel 3 - многопользовательский режим без графики).

Включаем юнит в автозагрузку при старте системы.
$ sudo systemctl enable myvnc.service Created symlink from /etc/systemd/system/multi-user.target.wants/myvnc.service to /lib/systemd/system/myvnc.service.

Смотрим статус созданного нами юнита.
$ sudo systemctl -l status myvnc.service ? myvnc.service - MyVnc Loaded: loaded (/lib/systemd/system/myvnc.service; enabled) Active: inactive (dead)

Дергаем systemd для поиска новых или измененных юнитов.
$ sudo systemctl daemon-reload

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

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

vncpasswd

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:

$ sudo nano /usr/local/bin/myvnc
Изменяем строку:
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}" на OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"

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

Под *nix:
# ssh [email protected] -L 5901:localhost:5901
Теперь возможно подключение посредством vnc клиента, указав вместо IP удаленного сервера localhost и порт на котором слушает vnc-server.

# vncviewer localhost:5901

При использовании 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 секунд).

Устанавливаем пакет из репозитория.
$ sudo apt-get install fail2ban
Основной интересующий нас файл настроек находится по пути /etc/fail2ban/jail.conf

Блок настроек для подключения по ssh:
enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6

Синтаксис

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 (шанс данного кейса отнюдь не нулевой).

Открываем конфиг файл.
$ sudo nano /etc/fail2ban/jail.conf

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

Ignoreip = Your.IP

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

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

В случае срабатывания бана в логах fail2ban, можно заметить строку предупреждения:
$ sudo tail -100 /var/log/fail2ban.log | less 2015-12-17 09:08:54,894 fail2ban.actions: WARNING Ban

И попытки подключения с данного адреса будут отбиваться сервером автоматически до истечения срока бана.
bash-3.2# ssh my.vnc -l vnc ssh: connect to host 37.48.90.203 port 22: Connection refused

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

Вы можете помочь и перевести немного средств на развитие сайта

TeamViewer — это одно из ведущих решений для доступа к рабочему столу и совместной работы через Интернет. TeamViewer является частью серии программного обеспечения GFI Software — мощных IT-решений для малого и среднего бизнеса..

Немецкая компания TeamViewer GmbH была создана в 2005 г.и полностью сосредоточена на развитии и распространении высококачественных решений для онлайн-сотрудничества и коммуникации. Быстрый старт и высокие темпы роста привели к более чем 200 миллионам установок в более чем 200 странах по всему миру. В настоящее время программное обеспечение доступно более чем на 30 языках.

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

Установка Teamviewer в Linux .

    Teamviewer — бесплатное для некоммерческого использования, средство удаленного администрирования компьютеров, не имеющих сетевых интерфейсов, доступных из интернет, т.е. компьютеров «за NAT-ом», когда сетевым адаптерам узлов присваиваются IP-адреса, зарезервированные для использования только в локальных сетях («серые IP»). Обмен данными между компьютерами с использованием Teamviewer, выполняется через специальные серверы компании-разработчика, подключение к которым, как управляющего, так и управляемого компьютеров выполняется как обычное клиентское подключение, а весь трафик между ними пересылается в рамках прикладного протокола. Другими словами, программное обеспечение Teamviewer обеспечивает обмен данными между компьютерами из разных сетей без необходимости наличия неприватного маршрутизируемого IP-адреса и открытых портов. Такое соединение можно представить в виде виртуального кабеля Ethernet, потянутого между компьютерами, выполнившими удаленное подключение через сервер поддержки компании TeamViewer.

Высокая популярность Teamviewer ‘а, по сравнению с аналогичными программами, вызвана не только бесплатностью и удобством использования, но и кроссплатформенностью, т.е. возможностью использования в среде большинства из, существующих на сегодняшний день, операционных систем для настольных и мобильных устройств — Windows, в том числе и Windows Phone , Linux, Android, MAC, IOS .

Для установки TeamViewer в операционных системах семейства Linux, разработчик рекомендует использовать программное обеспечение графической среды пользователя, как например, «Центр приложений» Linux Ubuntu, или «Установка и удаление программ» центра управления Linux Mageia. После скачивания инсталляционного файла под выбранный дистрибутив Linux, достаточно выполнить двойной щелчок или вызов контекстного меню правой кнопки мышки для запуска процесса установки TeamViewer .

Для установки из командной строки в среде RedHat, Mageia, CentOS, Fedora, SUSE нужно скачать rpm-пакет (teamviewer_linux.rpm package.) и выполнить команду:

  • yum install teamviewer_linux.rpm
  • rpm -i teamviewer_linux.rpm
  • В случае, если команда yum выдаст сообщение об отсутствии публичного ключа (: missing public key), нужно скачать его дополнительно к устанавливаемому пакету, по ссылке на странице загрузки, и выполнить импорт командой

    rpm —import TeamViewer_Linux_PubKey.asc

    После импорта ключа, нужно повторить команду yum для TeamViewer rpm.

    В случае установки TeamViewer из командной строки в среде Debian, Mint, Ubuntu, Kubuntu, Xubuntu: :

    Для 32-разрядных ОС нужно скачать пакет teamviewer_linux.deb , для 64-разрядных — teamviewer_linux_x64.deb и выполнить команду

  • sudo dpkg -i teamviewer_linux.deb
  • sudo dpkg -i teamviewer_linux_x64.deb
  • В случае, когда команда dpkg завершится сообщением о неудовлетворенных зависимостях (missing dependencies), нужно завершить установку TeamViever командой:

    sudo apt-get install -f

    В последних версиях 64-разрядных DEB — системах (Debian 7) пакет teamviewer_linux_x64.deb требует наличие 32-разрядных библиотек из состава пакета teamviewer_linux.deb , который придется инсталлировать независимо от разрядности ОС.

    При получении сообщения о неправильной архитектуре процессора («wrong architecture i386») нужно выполнить команды:

    dpkg —add-architecture i386

        TeamViewer можно установить и для тех дистрибутивов Linux, которые не поддерживаются официально. Для установки в среде RPM — систем, можно скачать пакет в формате tar.gz , разархивировать его содержимое в каком — либо каталоге и выполнить команду

    urpmi —force —allow-nodeps teamviewer_linux.rpm

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

    Установка Teamviewer в Windows .

        Установка TeamViewer в среде Windows выполняется стандартным образом. В процессе инсталляции необходимо выбрать требуемый вариант использования программы:

    Выбор по умолчанию — это установка Teamviewer в качестве обычной прикладной программы, когда не требуются права администратора. Вариант Установить, чтобы потом управлять этим компьютером удаленно используется для установки программы с возможностью автоматического запуска Teamviewer в качестве системной службы и позволяет подключаться к управляемому компьютеру даже если на нем не выполнен вход пользователя в систему. Для такого режима установки требуются права локального администратора. Последний вариант позволяет выполнить запуск TeamViewer без установки, когда программа используется в качестве переносимого (portable) приложения.

    Далее необходимо принять лицензионное соглашение и установка TemViewer будет продолжена. Для использования программы в бесплатном варианте, необходимо выбрать режим Личное / некоммерческое использование .

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

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

    Разрешить управление — когда компьютер управляется удаленно, пользователем, имеющим к нему доступ, т. е. знающим идентификатор, отображаемый в поле Ваш ID и пароль соответствующий идентификатору.

    Управлять компьютером — удаленное управление компьютером, к которому имеется доступ, т. е. Известен его ID (ID партнера ) и пароль. В стандартном режиме, пароль генерируется для каждой новой сессии удаленного подключения, однако имеется возможность создать и сохранить свой личный постоянный пароль для доступа к данному компьютеру. При автоматическом запуске TeamViewer и знании идентификатора и пароля можно удаленно управлять компьютером из любой точки планеты, где имеется доступ в Интернет.

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

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

    Передача файлов — выполнение обмена файлами с удаленным компьютером средствами TeamViewer.

    Запуск TeamViewer без установки.

        Разработчики TeamViewer’а предусмотрели возможность запуска программы в переносимом варианте, без установки на данном компьютере, для чего используются версия TeamViewer QuickSupport , скачать которую под используемую операционную систему, можно в разделе Дополнительные загрузки . В операционных системах Windows для запуска переносимого варианта используется TeamViewer QS.exe (TeamViewerQS_ru.exe для русскоязычной версии) . Для операционных систем семейства Linux/Unix нужно скачать сжатый файл teamviewer_qs.tar.gz . При открытии ссылки на скачивание установочного пакета в обозревателе Интернета, стандартно, выполняется запрос выбора варианта действий (Открыть, сохранить:) и программы для открытия данного типа файлов. Например,

    Пользователь может выбрать вариант открытия с помощью менеджера для работы с архивами (engrampa — форк File-roller) или сохранить скачиваемый архив в любом доступном каталоге, разархивировать его содержимое, и в дальнейшем выполнять запуск исполняемого файла teamviewer . Инсталляции программы и права суперпользователя (root) не требуются., поскольку пакет teamviewer_qs.tar.gz собран таким образом, что содержит все необходимые для работы модули, а библиотеки, необходимые для удовлетворения зависимостей, как правило, присутствуют при стандартной установке системы. При необходимости, отсутствующие библиотеки можно идентифицировать выполнением команды:

    tv-setup -checklibs

    При запуске TeamViewer QuickSupport на компьютере, к рабочему столу которого будет выполняться удаленное подключение, отображается окно с данными идентификации:

    Ваш ID — уникальный идентификатор, присваиваемый каждому компьютеру, подключившемуся к серверам обслуживания компании TeamViewer.

    Удаленное управление компьютерами через интернет — UltraVNC

    Пароль — пароль, который проверяется при выполнении удаленного подключения.

    Идентификатор и пароль необходимо сообщить партнеру, подключающемуся к вашему рабочему столу.

    При удаленном подключении, необходимым условием является соответствие версий прикладных протоколов, поддерживаемых программами TeamViewer обеих сторон.

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

    Примеры удаленного подключения с использованием Teamviewer .

        На сегодняшний день, версии TeamViewer под Windows и Linux обладают практически одинаковыми возможностями, схожими настройками и одинаковым порядком использования.

  • Обмен файлами между партнерами.
  • Teamviewer позволяет выполнить обмен файлами между компьютерами не зависимо от типа файловой системы, существующей на каждом из них. Файлы и папки можно передавать между компьютерами, например, работающим под управлением Windows 7 и Linux Mint16:

    В данном примере на левой панели отображено содержимое корневого каталога файловой системы локального компьютера, работающего под управлением ОС Linux, а на левой — корень диска C: на удаленном компьютере, работающем под управлением ОС Windows 7 Режим передачи файлов может инициироваться управляющим компьютером через меню «Передача файлов» и позволяет предавать данные в обе стороны (кнопки «Отправить» и «Получить». Кроме передачи файлов, возможен чат между партнерами, а также аудио/видеосвязь, включаемые соответствующими кнопками главного меню Teamviewer на управляющем компьютере. Также, существует возможность перемены ролей управляющего и управляемого компьютеров по инициативе управляющего через меню «Действия» — «Переключение сторон с партнером».

  • Постоянный доступ к удаленному компьютеру
  • Стандартное использование TeamViewer предполагает возможность удаленного подключения под контролем локального пользователя компьютера — он запускает программу и сообщает партнеру идентификатор и пароль для подключения. Однако, имеется возможность настроить TeamViewer таким образом, чтобы можно было обойтись без выполнения каких-либо действий человеком — оператором на компьютере, к которому выполняется подключение. В терминологии TeamViewer этот режим назван «Неконтролируемый доступ». Программа, при настройке с использованием неконтролируемого доступа, устанавливается и выполняется в качестве системной службы, запускающейся еще до регистрации пользователя в системе. Компьютер имеет постоянный идентификатор и пароль, зная которые, можно подключиться к удаленному рабочему столу в любой момент времени по инициативе подключающейся стороны, что очень удобно при администрировании удаленных систем, где нет возможности взаимодействовать с пользователем.

    Для настройки неконтролируемого доступа, в основном меню программы нужно нажать кнопку «Подключение» и выбрать пункт «Настроить неконтролируемый доступ»:

    Вводимые в ходе диалога, имя компьютера и пароль можно изменить в любой момент времени. Неконтролируемый доступ настраивается одинаково для случаев использования TeamViewer в ОС Windows и ОС Linux.

    Страница загрузки TeamViewer для Linux

    В начало страницы         |         На главную страницу сайта

    Virtual Network Computing (VNC) — система для удаленного доступа к рабочему столу. Если вы представляете себе Remote Desktop или RAdmin, то VNC решает аналогичную задачу, только VNC-сервера распространяются бесплатно и с открытым исходным кодом. Важно отметить, что VNC не является протоколом. Используемый протокол называется Remote FrameBuffer (RFB). Этот протокол полностью описан в этом PDF .

    Зачем кому-то поднимать VNC:

    • Если пробрасывание UI по SSH слишком тормозит;
    • Сервер используется как виртуалка, только с совместным доступом;
    • Торрентокачалка с белым IP, просто ставим Transmission и вперед;
    • Своего рода альтернатива проксям и VPN ;
    • И прочее, на что фантазии хватит;

    Приступим. Все описанные ниже шаги проверялись на Ubuntu Linux 14.04 LTS, но также должны без особых изменений работать на других версиях Ubuntu, а также других системах. Для эксперимента нам понадобится ненужная машина, возможно, виртуалка в каком-нибудь DigitalOcean , имеющая по крайней мере 512 Мб памяти. Если вы планируете запускать тяжелые GUI-программы вроде Google Chrome, то сразу выделяйте 1 Гб, а лучше и того больше. Если выделить только 512 Мб, вы сможете открыть только одну вкладу с GMail, после чего память закончится, я проверял. Меня лично очень печалит, что браузеры стали такими прожорливыми, но это, пожалуй, тема для отдельного поста.

    На машине, где будем поднимать VNC, под рутом заводим нового пользователя:

    adduser ubuntu
    usermod -G sudo ubuntu

    Прописываем ему наш ~/.ssh/id_rsa.pub:

    su ubuntu
    vim ~/ .ssh/ authorized_keys
    chmod 0600 ~/ .ssh/ authorized_keys

    У себя на компьютере в ~/.ssh/config дописываем:

    Host vnc-server
    Hostname 123.45.67.89
    User ubuntu
    LocalForward 5901 localhost:5901

    В VNC не шифруется трафик, поэтому мы будем ходить в него, используя перекидывание портов по SSH. Если вы также собираетесь использовать технику проброса звука, описанную в заметке Осилил запуск GUI-приложений в Docker , добавьте строчку:

    RemoteForward 3333 localhost:4713

    Заходим на vnc-server под пользователем ubuntu, говорим:

    sudo apt-get update
    sudo apt-get install xubuntu-desktop tightvncserver xfonts-base \
    xfonts-75dpi xfonts-100dpi

    Как вы могли заметить, в качестве конкретной реализации сервера был выбран TightVNC. Я имел опыт работы с ним несколько лет назад. Уже не помню точно, чем именно TightVNC тогда выделялся на фоне остальных VNC-серверов. Помню, что он был прост в установке и настройке, совместим со всеми клиентами и просто работал.

    Правим файл ~/.vnc/xstartup, содержание должно стать примерно таким:

    #!/bin/sh

    Xrdb $HOME / .Xresources
    xsetroot -solid grey
    startxfce4 &
    (sleep 3 && xfce4-panel) &

    Запустить сервер:

    vncserver:1 -localhost -nolisten tcp

    Здесь аргумент :1 — это номер дисплея. Можно запускать несколько десктопов, работающих одновременно. Флаг -localhost означает принимать соединения только с этой же машины. Параметр -nolisten tcp нужен для того, чтобы порт 6001 не торчал наружу. При первом запуске сервера понадобится ввести пароль для доступа к десктопу. Обратите внимание, что пароль обрезается до восьми символов. Также вас спросят про отдельный пароль для view-only соединения:

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

    Сменить пароль можно командой:

    Остановить сервер:

    vncserver -kill :1

    Чтобы подключиться к работающему серверу, нужен какой-нибудь VNC-клиент. В Ubuntu по умолчанию идет Remmina. В маках, как мне рассказывали, VNC клиент находится в Finder → Connect to Server. В качестве адреса сервера указываем localhost:5901, оттуда соединение будет переброшено по SSH на порт 5901 VNC-сервера. В общем случае номер порта вычисляется, как 5900 + номер дисплея.

    Дополнение: А во FreeBSD я делаю так:

    sudo pkg install tightvnc
    vncviewer -bgr233 localhost:5901

    Если все было сделано правильно, вы увидите среду рабочего стола Xfce. Ее также следует немного донастроить. В Applications Menu → Settings → Session and Startup во вкладке Advanced ставим галочку Launch GNOME services on startup. Во вкладке Application Autostart отключаем разные лишние сервисы типа Bluetooth Applet. Иначе некоторые приложения, в частности, Skype, могут ронять вообще все иксы с очень странными ошибками в логах. Я лично оставил только следующие галочки:

    Теперь прописываем VNC на автозапуск. В /etc/init.d/vncserver пишем.

    Хорошая новость! В компании Adman к своим серверам подключили виртуальную консоль. Которая позволяет получить локальный доступ к серверу через VNC, с помощью программы VNC viewer или плагина в браузере. Получился аналог ipKVM для виртуальных серверов.

    Virtual Network Computing (VNC) - система удалённого доступа к рабочему столу компьютера, использующая протокол RFB (англ. Remote FrameBuffer, удалённый кадровый буфер). Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.
    Система VNC платформонезависима: VNC-клиент, называемый VNC viewer, запущенный на одной операционной системе, может подключаться к VNC-серверу, работающему на любой другой ОС. Существуют реализации клиентской и серверной части практически для всех операционных систем, в том числе и для Java (включая мобильную платформу J2ME). К одному VNC-серверу одновременно могут подключаться множественные клиенты. Наиболее популярные способы использования VNC - удалённая техническая поддержка и доступ к рабочему компьютеру из дома.
    Информация взята из Википедии

    С помощью данной функции можно:
    — получить доступ к серверу даже если ОС не установлена или к ней потерян доступ
    — установить свою ОС.

    Обещают, что в ближайшее время появится возможность подключать свои ISO образы.
    Включить VNC доступ можно на странице настройки сервера. Данная услуга – БЕСПЛАТНАЯ! И активируется автоматически в течении 2-3 минут.

    Программное обеспечения для VNC консоли

    Для удаленного доступа по VNC я использую бесплатную программу TightVNC . Пример работы с ней можно просмотреть в моей статье

    Бесплатные сетевые утилиты от Nirsoft

        Краткое описание и ссылки для скачивания набора утилит с сайта nirsoft.net. Все программы распространяются бесплатно. Практически для всех утилит, имеется возможность скачать инсталляционный файл или переносимую версию программы, упакованную в zip-архив. В конце каждой страницы с описанием программы сайта nirsoft.net имеется ссылка для скачивания пакетов поддержки различных языков, включая русский. Процесс русификации очень прост - разархивируйте архив языковой поддержки и скопируйте полученный ini-файл в каталог с программой.

    CurrPorts CurrPorts (cports.exe) - программа мониторинга сетевых соединений. Позволяет просматривать список активных соединений и открытых TCP/IP и UDP портов на данном компьютере. Для каждого порта выводится информация о процессе, открывшем порт, включая имя, путь к исполняемому файлу, версию и дополнительные сведения, время создания процесса и учетная запись пользователя, создавшего процесс.
    Дополнительно, CurrPorts позволяет закрыть (close) нежелательное соединение и принудительно завершить процесс (kill process), создавший его. Также, имеется возможность сохранить данные мониторинга в формате HTML , XML, TXT.
    SmartSniff SmartSniff позволяет перехватывать TCP/IP пакеты, следующие через выбранный сетевой адаптер и просматривать перехваченные данные в виде последовательности сессий обмена данными между клиентом и сервером. Данные могут быть представлены в виде текста ASCII или в виде шестнадцатеричного дампа.
    NetworkTrafficView NetworkTrafficView - утилита сбора статистических данных о сетевом трафике для выбранного адаптера. Выводится статистика по адресам источника и приемника, портам, протоколам, максимальной скорости передачи данных, длительности соединений, идентификаторам и именам программ, выполнявших обмен данными по протоколу TCP.
    HTTPNetworkSniffer v1.00 HTTPNetworkSniffer пакетный сниффер, выполняющий перехват всех данных обмена между браузером и веб-сервером по протоколу HTTP. Для каждого HTTP запроса отображается информация об имени узла (Host Name), методе HTTP (GET, POST, HEAD), пути URL , поля User Agent, коде ответа (Response Code), строке ответа (Response String), полей Content Type, Referer, Content Encoding, Transfer Encoding, Server Name, Content Length, Cookie String, и т.п.
    Имеется возможность экспорта сессий в буфер обмена или text/html/xml/csv файл.
    AdapterWatch AdapterWatch отображает общую информацию о сетевом адаптере - IP адрес, MAC адрес (Hardware address), WINS сервер, DNS сервер, значение MTU, число принятых /переданных байтов, текущую скорость передачи, статистику TCP/IP/UDP/ICMP.
    DownTester DownTester - позволяет определить скорость скачивания для веб-серверов, список которых задается в виде URL вручную или в содержимом текстового файла. Результаты можно сохранить в формате html/xml/csv/text
    Wireless Network Watcher Wireless Network Watcher - небольшая утилита для сканирования беспроводной сети и создания списка подключенных к ней компьютеров и устройств с отображением IP и MAC адресов, данных о сетевом адаптере и имени компьютера. Список можно экспортировать в html/xml/csv/text файл, или скопировать в буфер обмена для дальнейшей вставки в страницы Excel или другого приложения.
    NetResView NetResView - небольшая программа для отображения списка сетевых ресурсов локальной сети, включая имена компьютеров, версии операционных систем, данные о сетевых принтерах и каталогах.
    PingInfoView PingInfoView небольшая утилита для опроса узлов по именам или IP-адресам с возможностью задания количества и интервалов пинга. Аналог стандартной консольной программы ping.exe. Результаты можно сохранить в html/xml/csv/text файл.
    FastResolver FastResolver небольшая утилита для быстрого определения имен узлов по IP -адресам. Для локальной сети позволяет быстро получить список IP и MAC адресов компьютеров.
    BluetoothView BluetoothView - небольшая программа, выполняемая в фоновом режиме для мониторинга активности устройств Bluetooth . Для каждого обнаруженного устройства отображается имя (Device Name), адрес (Bluetooth Address), тип устройства, время первого и последнего обнаружения.
    BluetoothView может оповещать пользователя при обнаружении нового Bluetooth-устройства с помощью короткого звукового сигнала и всплывающего окна.
    WirelessNetView WirelessNetView - небольшая программа, выполняемая в фоновом режиме для обнаружения беспроводных сетей Wi-Fi в зоне доступности данного компьютера. Для каждого узла отображается имя, MAC-адрес, уровень сигнала, алгоритм аутентификации, количество каналов и т.п.
    IPNetInfo IPNetInfo - программа, позволяющая быстро получить подробную информацию о конкретном IP-адресе. Отображаются данные о владельце, стране, диапазоне адресов подсети, контактной информации.
    WhoisThisDomain WhoisThisDomain позволяет быстро получить информацию о зарегистрированном домене. Выполняет автоматическое подключение к WHOIS серверу, соответствующего домена и отображение записи WHOIS.
    DNSDataView DNSDataView - альтернатива стандартной консольной утилите nslookup.exe. Позволяет получить записи DNS для заданного доменного имени. Результаты можно сохранить в text/xml/html/csv файл
    NetRouteView NetRouteView - GUI-аналог стандартной консольной программы route.exe семейства ОС Windows. Отображает текущую таблицу маршрутизации и позволяет легко добавлять новые маршруты а также изменять и удалять существующие.

    Бесплатные сетевые программы Virtual Network Computing (VNC).

        Virtual Network Computing (VNC) - система удалённого доступа к рабочему столу компьютера, использующая протокол прикладного уровня RFB (Remote FrameBuffer) . Управление удаленным компьютером осуществляется путём передачи нажатий клавиш на клавиатуре и перемещений указателя мыши с одного компьютера на другой через сеть. На управляемом компьютере используется серверная часть VNC (VNC server), на управляющем - клиентская (VNC viewer) . VNC не зависит от систем, в которых она функционирует и, например, клиент для Linux может подключаться к серверу VNC работающему в среде Windows. Также существуют и реализации VNC для Java, в том числе и для мобильных телефонов.

    Протокол RFB был разработан относительно давно и первоначально использовал для передачи буфера экрана метод простого кодирования Raw Encoding - когда сервер передавал клиенту точки экрана в порядке слева на право и сверху вниз. После передачи первого буфера в дальнейшем, для минимизации трафика, передавались только изменившиеся пиксели. При таком способе кодирования и небольшой степени изменения изображения трафик минимален, однако, например, при просмотре видео - нагрузка на канал передачи резко возрастает, поскольку в буфере экрана будут изменяться практически все пиксели. Для минимизации обменного трафика, системы VNC стали использоваться различные методы кодирования и сжатия передаваемых данных. Не все методы являются стандартом для каждой реализации VNC. Если метод RAW Encoding может использоваться в любой VNC-системе, то специфические методы (CopyRect, Zlib, CoRRE и др.) зависят от используемого программного обеспечения и могут отличаться для разных версий VNC. Возможности по кодированию передаваемых данных клиент и сервер согласовывают при установлении соединения.

    По умолчанию для обмена данными по протоколу RFB используется диапазон TCP-портов с 5900 до 5906. Каждому порту соответствует свой экран графического сервера (в Linux - терминалы 0 - 6 X-сервера, в Windows - рабочий стол с номером дисплея 0 и TCP порт 5900). В некоторых реализациях VNC возможно обратное подключение от сервера к клиенту через TCP порт 5500.

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

    Одним из наиболее простых и удобных представителей семейства VNC является RealVNC . Продукт выпускается в 3-х вариантах:

    - Free Edition - бесплатная версия с поддержкой базовых возможностей серверной и клиентской части.
    - Personal Edition - платная версия для использования в домашних условиях и в малом бизнесе. Добавлены возможности шифрования данных, чат, удаленная печать.
    - Enterprise Edition - коммерческая версия с улучшенной аутентификацией, шифрованием данных, удаленной печатью, чатом, передачей файлов.

    Инсталлятор включает в себя и серверную, и клиентскую части. Сервер может быть сконфигурирован для запуска в пользовательском режиме (User-Mode) или в качестве системной службы (Service-Mode). В режиме системной службы запуск сервера выполняется автоматически в процессе загрузки Windows. В таком режиме VNC-сервер готов к приему входящих подключений без входа пользователя в систему и каких-либо его действий. В пользовательском режиме, сервер запускается вручную или через автозапуск, как обычная прикладная программа.

    Конфигурирование VNC-сервера выполняется либо с помощью вызова контекстного меню щелчком правой кнопки мышки на иконке в панели задач Windows (пункт меню "Options"), либо запуском с использованием ярлыков в меню "Программы" -"RealVNC" - "VNC-Server: "- "Configure VNC Server" . В процессе конфигурирования сервера выполняются минимальные настройки - способ аутентификации и пароль для подключения (вкладка Authentication ):

    No Authentication - запрос пароля при подключении клиента к серверу не выполняется.
    VNC Password Authentication - подключение к серверу с проверкой пароля, заданного настройками сервера. Пароль задается при нажатии кнопки Configure . Во многих бесплатных версиях VNC используется пароль длиной в 8 символов. Если задать пароль большей длины, то для проверки все равно будут использоваться первые 8 символов, что делает такой сервер весьма уязвимым для взлома с использованием подбора пароля. Тем более, что количество попыток ввода пароля не проверяется. В платных версиях безопасность значительно улучшена, поскольку можно использовать длинные пароли, шифрование данных и проверку доступа с использованием средств Windows (режим NT Logon Authentication )

    Настройки соединения выполняются на вкладке Connections :

    Accept connection on port - принимать соединения на порт TCP 5900. Номер порта, при необходимости, можно изменить.
    Disconnect idle client after (seconds) - время неактивности клиента в секундах, по истечении которого, соединение будет сброшено.
    Serve Java viewer via HTTP on port - обслуживать подключения Java-клиента, подключающегося по протоколу HTTP на порт 5800. При использовании этого пункта конфигурации, подключение к VNC - серверу возможно в окне браузера с поддержкой Java.
    В поле Access Control можно задать правила обработки подключений для отдельных IP-адресов или подсетей. Для каждой записи возможно 3 варианта предопределенного действия:

    Allow - Разрешить подключение. В окне со списком адресов, отображается со знаком + перед адресом.
    Deny - Запретить подключение. В окне со списком адресов, отображается со знаком - перед адресом.
    Query - Выдать запрос на разрешение подключения.. В окне со списком адресов, отображается со знаком ? перед адресом.

    Режимы обслуживания подключений клиентов настраиваются на вкладке Sharing :

    Always treat new connection as shared - всегда трактовать новое соединение как разделяемое.
    Never treat new connection as shared - никогда не трактовать новое соединение как разделяемое.
    Use client"s preferred sharing settings - использовать установки клиента для определения разделяемого соединения.
    Non shared connection replace existing ones - не разделяемое соединение заменяет существующее. При установке данного режима, подключение нового клиента с признаком неразделяемого соединения, сервер выполнит сброс всех остальных подключений. Для подключения множества клиентов к одному серверу флажок нужно снять.

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

    While connected - действия при подключении клиента к серверу VNC
    Установка флажков для каждого из полей уменьшает трафик при обмене буфером рабочего стола, но немного упрощает его внешний вид. Желательно включать при низком быстродействии канала передачи данных.

    When last client disconnects - когда последний клиент отключится.
    - Do nothing - ничего не делать.
    - Lock Workstation - запереть рабочий стол. Сеанс пользователя не завершается, но для продолжения работы с рабочим столом нужно ввести имя пользователя и пароль.
    - Logoff user - выполнить выход пользователя из системы.

    Режимы вкладки Inputs определяют взаимодействие между клиентом и сервером при обработке событий клавиатуры и мышки. Режим "Disable local inputs while server in use" отключает клавиатуру и мышь на удаленном компьютере при подключении к серверу VNC.

    Вкладка Capture method задает режим обработки изображения рабочего стола при передаче данных от сервера к клиенту и обработку прозрачных окон (Alpha - blended windows). Изменение режимов влияет на объем трафика между клиентом и сервером, а также степень использования ресурсов центрального процессора при обработке буфера рабочего стола.

    Настройки сервера RealVNC хранятся в разделе реестра HKLM\SOFTWARE\RealVNC\WinVNC4

    Клиент Real VNC Viewer после запуска выдает на экран окно подключения к серверу. В поле ввода используется имя или IP-адрес удаленного компьютера, и при необходимости - номер порта, например 5909:

    Кнопка Options позволяет настроить режимы для клиентской части RealVNC. В окне настрое имеется вкладка Load / Save с помощью которой можно сохранить текущие настройки в файл с расширением .vnc или загрузить ранее сохраненные настройки из файла. Это позволяет иметь несколько профилей настроек для подключения к разным серверам VNC. Настройки по умолчанию рассчитаны на среднюю производительность и среднее качество отображения рабочего стола.

    Вкладка Color & Encoding позволяет выбрать режим кодирования данных при передаче буфера рабочего стола и глубину его цвета. Имеется возможность выбора одного из 3-х предпочитаемых типов кодирования или установить режим Auto Select - когда выбор выполняется автоматически при установлении соединения с сервером VNC.

    Глубина цвета Color Level определяет качество отображения удаленного рабочего стола и объем передаваемых данных от сервера к клиенту. Минимальный трафик и наихудшее изображение соответствует режиму Very Low (8 colours

    Настройки вкладки Inputs во многом сходны с настройками сервера и относятся к параметрам устройств ввода - клавиатуры и мыши

    Поле Menu Key - определяет специальную клавишу для вызова меню взаимодействия клиента с удаленным рабочим столом. Используется для передачи специальных кодов клавиш (CTRL, ALT, CTRL-ALT-DEL:) По умолчанию в качестве клавиши меню используется F8 . Кроме передачи специальных кодов клавиш, нажатие F8 позволяет вызвать меню настроек клиента, перейти в полноэкранный режим, создать новое подключение и посмотреть информацию о текущем (Connection Info:) . Информация о текущем соединении включает IP-адрес и имя удаленного сервера, разрешение экрана, формат пикселей, метод кодирования, используемый протокол, приблизительную скорость обмена данными.

        Для установки серверной части на удаленном компьютере можно воспользоваться бесплатной утилитой pushVNC . Программа позволяет системным администраторам выполнять установку VNC сервера на удаленном компьютере по локальной сети без какого-либо вмешательства конечного пользователя.

    Для подключения к удаленному компьютеру требуется учетная запись с правами администратора. Кроме того, на удаленном компьютере должны быть доступны скрытые сетевые ресурсы ADMIN$ и IPC$ и должна работать служба удаленного управления реестром. Программа копирует несколько своих файлов для создания VNC - сервера на удаленный компьютер, регистрирует в реестре новый сервис PushVNC и выполняет его запуск. Затем выполняется обычное клиентское подключение к удаленно созданному серверу. Если не установлен режим Leave Service , то после завершения сеанса созданный сервер и скопированные по сети файлы удаляются.

    RealVNC - одна из простых и удобных бесплатных реализаций VNC. Кроме нее имеется еще несколько десятков, отличающихся в незначительной степени. Например, популярный пакет UltraVNC имеет практически такие же настройки, как и RealVNC, но позволяет использовать большее количество методов кодирования данных, шифрование даже в бесплатной версии, можно использовать специальный собственный драйвер для обработки буфера рабочего стола. И так же как RealVNC, сервер UltraVNC в бесплатной редакции выполняет усечение пароля до 8 символов. Ниже приведены ссылки и краткое описание бесплатных реализаций VNC на проекте SourceForge.

    Программы семейства VNC проекта SourceForge.net

        SourceForge.net - один из самых больших в мире веб-сайтов для разработчиков открытого программного обеспечения, который обслуживается SourceForge, Inc. и использует собственническую систему SourceForge. На этом сайте разработчики могут размещать и совместно разрабатывать свои программные проекты. На SourceForge.net размещены более 230 тыс. проектов, а количество зарегистрированных пользователей составляет около 2 млн. человек.
    Многие проекты, опубликованные на sourceforge.net имеют свой собственный сайт, ссылка на который размещена на странице с кратким описанием программного продукта.

    TightVNC - наиболее популярный продукт семейства VNC, улучшенная реализация с кодировкой "Tight" обеспечивающей снижение трафика между клиентом и сервером, и возможностью передачи файлов.
    TigerVNC - реализация VNC, основанная на доработке проектов TightVNC и TurboVNC . Отличается улучшенной компрессией JPEG .
    EchoVNC - реализация клиента VNC с улучшенной защищенностью. Имеется поддержка подключений к серверам VNC, Remote Desktop, и RAdmin. Расширенная панель инструментов позволяет оптимизировать работу с выбранным сервером.
    Flashlight-VNC - клиент (VNC Viewer), написанный на Flash.
    Flashlight VNC Recorder - дополнение к проекту Flashlight VNC с возможностью записи сессии.
    Delphi VNC Server VNC сервер, написанный на Delphi.
    MultiVNC VNC клиент с поддержкой большого количества методов кодирования данных
    LightVNC реализация сервера VNC только с поддержкой подключений по протоколам HTTP и HTTP(S). В качестве клиентского программного обеспечения используется веб-браузер. Позволяет подключаться к удаленному рабочему столу устройствам, не имеющим клиентской части VNC - смартфонам, игровым консолям, планшетным компьютерам.
    ThinVNC - реализация VNC с использованием HTML5 и технологии AJAX. В качестве клиента должен использоваться браузер с поддержкой HTML5 - Mozilla FireFox, Chrome, Opera.
    pushVNC7 - удаленная установка по локальной сети и запуск сервера VNC на рабочих станциях Windows 7. Реализация проекта pushVNC для Windows 7.
    Простой набор инструментов для установки UltraVNC на удаленном компьютере без каких-либо действий пользователя и незаметно для него.