VNC для керування віддаленими робочими столами, SavePearlHarbor

Ще одна копія хабора

Головне меню

Навігація за записами

VNC для керування віддаленими робочими столами

У статті розглядаються основи VNC управління віддаленими робочими столами інших комп'ютерах[1]. Далі у статті наведено огляд програмного забезпечення для різних операційних систем, що реалізує цю технологію. Крім того, мимохіть згадуються іт-аутсорсинг, технічна підтримка, хакери, найбільші технологічні компанії[2], значення комп'ютерних технологій у сучасному світі.

Введення ******** Персональний комп'ютер здатний виконувати задані, чітко визначені послідовності операцій, опис яких називаються программами[3]. Проте які послідовності операцій під час запуску тієї чи іншої програми виконує комп'ютер, дилетанту невідомо. Тих, хто розуміє тонкощі роботи програм ЕОМ, зазвичай називають хакерами[4]. Нерідко говорять про субкультуру хакерів, що відрізняється від домінуючої культури власною системою цінностей, котрий іноді мовою, манерою поведінки, одягом та інші аспектами[5]. Для системних адміністраторів не абстрактної цінністю, а необхідною умовою професійної діяльності знання основ побудови та архітектури ЕОМ. Хороший системний адміністратор знайомий і з основними стандартами в галузі інфокомунікаційних систем та технологій [6]. Роботи з підтримки, обслуговування та модернізації ІТ-інфраструктури можуть передаватися в руки компанії, для якої виконання подібних робіт є профільним напрямом діяльності[7]. Найчастішим видом часткової чи повної передачі таких робіт є абонентське обслуговування комп'ютерів. Для цього іт-аутсорсингова компанія завжди має штат спеціалістів різної кваліфікації.Зазвичай абонентське обслуговування передбачає пропозицію замовнику комплексного набору послуг. Пропонований набір послуг дозволяє замовнику обійтися без власного системного адміністратора або значно знизити його завантаження [8].

Використання програм віддаленого адміністрування — лише один із багатьох випадків взаємодії комп'ютерів через мережу. Причому у всіх випадках має місце з'єднання та обмін даними між двома та більше включеними в мережу пристроями. Виконання останнього завдання дозволяють здійснювати різні набори правил та дій (черговості дій)[10]. Одним із таких наборів правил та дій (черговості дій) є мережевий протокол RFB. Саме він використовується у системах віддаленого доступу до робочого столу комп'ютера за технологією Virtual Network Computing (VNC). З його допомогою здійснюється взаємодія через комп'ютерну мережу VNC-клієнтів та VNC-серверів. Хоча зазвичай VNC-клієнти та VNC-сервера знаходяться на різних обчислювальних машинах, іноді вони можуть виконуватись і на одній машині [11].

Протокол передачі «remote framebuffer» **************************************** ***** RFB (англ. remote framebuffer, віддалений кадровий буфер) - простий клієнт-серверний мережевий протокол прикладного рівня, що використовується в VNC. Призначений для віддаленого доступу до робочого стола комп'ютера. Він працює на рівні кадрового буфера, тому його можна використовувати для різних графічних віконних систем. До них входять X11, Windows і Macintosh[12].

VNC складається з двох частин: клієнта та сервера. Сервер — це програма, яка надає доступ до екрана комп'ютера, на якому вона запущена. Клієнт (або viewer) - програма, яка отримує зображення екрана із сервера. Клієнт взаємодіє із сервером за протоколомRFB[13].

RFB є простим протоколом. Сервер посилає клієнту невеликі прямокутники, закодовані у той чи інший спосіб. При цьому вони доповнюються інформацією про те, де клієнт має їх намалювати. Керування здійснюється шляхом передачі натискань клавіш на клавіатурі. Не менш важливою є і передача рухів миші з одного комп'ютера на інший.

Існує три етапи взаємодії VNC-клієнта та VNC-сервера через комп'ютерну мережу. На всіх трьох етапах це відбувається через мережевий протокол RFB. Перший етап зветься «етап рукостискання». Його мета – домовитися про версію протоколу. Їх три - RFB 3.3, 3.7 або 3.8. На цьому етапі визначається і тип безпеки, що використовується. Приклад можливих типів безпеки: 1 - None, 2 - VNC Authentication, 18 - TLS. Другий етап – це етап ініціалізації. На ньому клієнт і сервер обмінюються повідомленнями ClientInit і ServerInit. Заключний етап - це нормальна взаємодія за визначеними в протоколі правилами. На заключному етапі клієнт надсилає будь-які повідомлення, які хоче. У відповідь він отримує повідомлення від сервера. Усі повідомлення починаються з байта типу повідомлення. За байтом типу повідомлення йдуть відповідні дані.

Визначено такі типи повідомлень від клієнта до сервера: 0 - SetPixelFormat, 1 - SetEncodings, 3 - FramebufferUpdateRequest. До них примикають ще три типи: 4 – KeyEvent, 5 – PointEvent, 6 – ClientCutText. SetPixelFormat дозволяє встановити формат пікселів, що передаються за допомогою FramebufferUpdate. SetEncodings визначає тип кодування, що використовується для передачі пікселів сервером. FramebufferRequest повідомляє серверу про те, що клієнт запитує вміст деякої області кадрового буфера. За допомогою KeyEvent серверу передається інформація про натискання абовідпускання клавіатурної клавіші, а за допомогою PointEvent - про переміщення курсору миші або натискання кнопки миші. Повідомлення останнього типу інформують сервер про наявність у текстовому буфері клієнта тексту кодування Latin-1.

Також визначено 4 типи повідомлень від сервера до клієнта: 0 - FramebufferUpdate, 1 - SetColourMapEntries, 2 - Bell, 3 - ServerCutText. За допомогою FramebufferUpdate здійснюється передача клієнту масивів пікселів. SetColourMapEntries передає відповідну карту кольорів. Bell повідомляє клієнту про необхідність відтворити звуковий сигнал. Повідомлення ServerCutText говорить про наявність текстового буфера сервера тексту в кодуванні Latin-1.

Найпростіший тип кодування, що застосовується в протоколі RFB і підтримується всіма клієнтами та серверами - "raw encoding" (рос. сире кодування). Це означає, що пікселі передаються в порядку зліва-направо, зверху-вниз. Ще один тип кодування - CopyRect - застосовується в тих випадках, коли необхідна область зображення вже є у копії кадрового буфера у клієнта. Тоді достатньо вказати координати прямокутника, який необхідно скопіювати з копії кадрового буфера, що робиться при використанні цього типу кодування.

Тип кодування Zlib є той же Raw, але попередньо стислий за допомогою бібліотеки Zlib. При кодуванні Hextile прямокутник розбивається на невеликі квадрати, кожен з яких може мати своє власне уявлення, що дозволяє кодувати області, що повторюються, і використовувати палітри. ZRLE поєднує у собі Zlib і Hextile[14].

Огляд VNC-серверів та VNC-клієнтів для OS X, Windows та Linux ******************************** *************************** Mac і Windows адекватно підтримують залізо та мультимедіа. Для них існуєзначну кількість ігор. Завдяки цьому вони безроздільно панують серед звичайних домашніх ПК. Однак Linux впевнено витісняє інші операційні системи. Це відбувається у багатьох сферах діяльності (у тому числі на домашніх ПК). Причиною тому безплатність цього продукту та якісна платна поддержка[3].

Я не буду детально зупинятися на налаштуванні різних VNC-серверів та VNC-клієнтів. Усі вони реалізують протокол передачі RFB. Усі вони мають по суті однакові налаштування. Ці налаштування дозволяють вказати метод кодування, параметри шифрування та аутентифікації та інші параметри, визначені в протоколі RFB.

В OS X як VNC-сервер можна використовувати Apple Remote Desktop. Для цього можна відкрити меню "Системні налаштування". Після цього з'явиться можливість відкрити панель Загальний доступ. Тепер можна встановити галочку навпроти пункту «Віддалене керування». Натиснувши кнопку «Налаштування комп'ютера..», у вікні можна встановити ще одну галочку. Вона називається "Користувачі VNC можуть отримати управління екраном по паролю". При цьому необхідно ввести пароль у поле введення [15].

керування

x11vnc - VNC-сервер [16]. Він дозволяє отримати віддалений доступ до робочого столу комп'ютера з операційною системою Unix/Linux. У різних дистрибутивах Linux його можна встановити із репозиторіїв. Для цього використовують штатний консольний менеджер пакетів. У Mageia це urpmi, У Ubuntu це apt. У OpenSUSE для цих цілей зазвичай застосовується zypper. Fedora надає yum, як аргумент консольного менеджера пакетів зазвичай вказується ім'я пакета, в даному випадку x11vnc. Після цього необхідною операцією є встановлення пароля для VNC-клієнтів. Це можна зробити за допомогою команди x11vnc-storepasswd. Дляналаштування VNC-сервера x11vnc передбачена утиліта з графічним інтерфейсом. Вона викликається за допомогою команди x11vnc-gui. Також вона дозволяє переглядати інформацію про події, що відбуваються у роботі VNC-сервера і навіть керувати VNC-клієнтами.

столами

Для Windows є вільне програмне забезпечення UltraVNC. До його складу входять VNC-сервер UltraVNC та VNC-клієнт UltraVNC Viewer. В принципі, в Linux та OS X також можна використовувати UltraVNC Viewer. У цих операційних системах його можна запустити за допомогою Wine. У Linux цей пакет можна встановити за допомогою консольного менеджера пакетів. У OS X це робиться з портів (за допомогою команди port install wine). Для цього попередньо має бути встановлена ​​система MacPorts. Це система, що розповсюджується у вихідних кодах, для встановлення програмного забезпечення [17]. В останньому випадку установка Wine може тривати більше півтори години.

віддаленими

savepearlharbor

У середовищі Linux як VNC-клієнт можна використовувати TigerVNC.

Висновок ********** У статті не було розглянуто шифрування трафіку у програмах віддаленого адміністрування з використанням протоколу SSH. Цей прийом використовується при з'єднанні сервера та клієнта безпосередньо через незахищену мережу, таку як Інтернет[20]. Також нічого не було сказано про можливість передачі файлів між VNC-сервером та VNC-клієнтом. Проігноровано у статті та використання режиму «View Only».

Крім згаданих VNC-серверів та VNC-клієнтів існують інші реалізації технології VNC. Серед останніх хотілося б відзначити VNC-сервер vino та VNC-клієнт vinagre. Вони входять до складу робочого середовища GNOME та призначені для з'єднання комп'ютерів, що працюють під керуванням операційної системи Linux.

Можна по-різному ставитися допредставленої у статті інформації. Для когось вона може здатися надмірною. Комусь допоможе замінити головний біль, пов'язаний з керуванням віддаленими робочими столами на інших комп'ютерах, усвідомлення самореалізації в роботі. Нарешті, зі статті, можливо, зможуть дізнатися для себе щось нове ті, хто ще не має досвіду, достатнього для ефективної роботи в таких згадуваних операційних системах, як OS X і Linux. У будь-якому випадку, як би читач не належав до розглянутої теми, не можна заперечувати вплив комп'ютерних технологій на культуру, економіку та політику [21]. Володіння ними дозволяє індивіду успішно функціонувати у обществе[22].